#include
using namespace std;
char *encrypt(char *str){
char *ret=str; непонятно что к чему тут приравнивается
while( *str )
++(*str++); я так понял, что str++ это в памяти перемещается на букву, а потом перемещается в строке на один символ вперед
return ret; возвращает он не str. тож не понял
}
char *decrypt(char *str){
char *ret=str;
while(*str)
--(*str++);
}
int main(){
char buf[BUFSIZ]; что именно значит bufsiz
while(printf("Slovo : ")&&scanf("%[^\n]%*c",buf)==1){
printf("Encrypted: %s\n", encrypt(buf));
printf("Decrypted: %s\n", decrypt(buf));
}
return 0;
}
буду рад, если объясните, а то сегодня не приняли, а дедлайн завтра
Другие языки программирования и технологии
не могу сдать преподу программу, требует объяснения чуть ли не каждой строки. в программе на 100% не разбираюсь. С++
Нужно переписать понятнее.
#include <iostream>
char* encrypt(char* str) {
char* begin = str; // здесь запоминается начало строки
while (*begin) { // пока не конец строки
++(*begin); // здесь увеличивается на единицу значение типа char
++begin; // здесь увеличивается на единицу значение указателя
}
return str; // вернём тот же указатель, который взяли
}
char* decrypt(char* str) {
char* begin = str; // здесь запоминается начало строки
while (*begin) { // пока не конец строки
--(*begin); // здесь уменьшается на единицу значение типа char
++begin; // здесь увеличивается на единицу значение указателя
}
return str; // вернём тот же указатель, который взяли
}
int main() {
char buf[BUFSIZ]; // BUFSIZ - определённая в библиотеке stdio.h константа под размер буфера, равная 512
while (printf("Slovo : ") && scanf("%[^\n]%*c", buf) == 1) {
printf("Encrypted: %s\n", encrypt(buf));
printf("Decrypted: %s\n", decrypt(buf));
}
return 0;
}
#include <iostream>
char* encrypt(char* str) {
char* begin = str; // здесь запоминается начало строки
while (*begin) { // пока не конец строки
++(*begin); // здесь увеличивается на единицу значение типа char
++begin; // здесь увеличивается на единицу значение указателя
}
return str; // вернём тот же указатель, который взяли
}
char* decrypt(char* str) {
char* begin = str; // здесь запоминается начало строки
while (*begin) { // пока не конец строки
--(*begin); // здесь уменьшается на единицу значение типа char
++begin; // здесь увеличивается на единицу значение указателя
}
return str; // вернём тот же указатель, который взяли
}
int main() {
char buf[BUFSIZ]; // BUFSIZ - определённая в библиотеке stdio.h константа под размер буфера, равная 512
while (printf("Slovo : ") && scanf("%[^\n]%*c", buf) == 1) {
printf("Encrypted: %s\n", encrypt(buf));
printf("Decrypted: %s\n", decrypt(buf));
}
return 0;
}
char *ret=str; // ret присваивается адрес строки str
return ret; // возвращает адрес строки ret, то есть переделанной строки str
return ret; // возвращает адрес строки ret, то есть переделанной строки str
Юрий Степаненко
Чушь. Код выглядит вполне корректно. Параметр метода указатель. Этот указатель сохранили в переменной и вернули как результат. А переменная-параметр изменила своё значение при выполнении. Можно было сделать наоборот: внутри функции пользоваться ret, а вернуть str. То же самое.
Инкремент ++ – это увеличение на единицу. Декремент -- – это уменьшение на единицу. Операции декремента и инкремента с лёгкостью заменяются арифметическими операциями или операциями присваивания. Но использовать операции инкремента и декремента намного удобнее.
//синтаксис операций инкремента и декремента
++/*имя переменной*/; // префиксный инкремент (преинкремент)
/*имя переменной*/++; // постфиксный инкремент (постинкремент)
--/*имя переменной*/; // префиксный декремент (предекремент)
/*имя переменной*/--; // постфиксный декремент (постдекремент)
BUFSIZ – размер массива буферизации.
//синтаксис операций инкремента и декремента
++/*имя переменной*/; // префиксный инкремент (преинкремент)
/*имя переменной*/++; // постфиксный инкремент (постинкремент)
--/*имя переменной*/; // префиксный декремент (предекремент)
/*имя переменной*/--; // постфиксный декремент (постдекремент)
BUFSIZ – размер массива буферизации.
Похожие вопросы
- Нужна помощь с программой на ассемблере - комментирование каждой строки
- Нужно на с++ написать программу по заданию:даны две строки, содержащие не более 100 символов. Строки состоят из слов, р
- можно ли сдать анивирусную программу в магазин после вскрытия упаковки?
- Требуется объяснить каждую строку программы на Assembler
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Дан двумерный масссив. Найти и вывести максимальный элемент каждой строки. Turbo Pascal
- в книге 280 страниц на каждой странице 40 строк в каждой строке 65 символов можно ли эту книгу уместить в дискету
- в матрице Х (8,5) найти среднее арифметическое значение максимальных элементов в каждой строке
- Помогите !!!С++Работа с одномерными и двумерными массивами. В каждой строке матрицы F(k, k) элемент. лежащий на главной
- здравствуйте ,не давно начал изучать "язык програмиста" работаю в турбо паскале , не могу понят почему программа