Вернуть значение, например строки, в адекватном состоянии, если двигался указатель - C (СИ)
Формулировка задачи:
Как вернуть значение, например строки, в адекватном состоянии, если до этого двигал указатели? На ум только приходит двигать обратно или создать до того, как двигаешь, ещё один указатель, которому присваиваешь начальный адрес?
Есть какие-нибудь ещё нормальный варианты?
Решение задачи: «Вернуть значение, например строки, в адекватном состоянии, если двигался указатель»
textual
Листинг программы
char buf[BUFSIZ];
char * ptr;
fgets(buf, BUFSIZ, stdin);
for (ptr = buf; *ptr; ptr++)
printf("%c", *ptr);
printf("\nstr=%s\n", buf);
Объяснение кода листинга программы
- Объявлены две переменные: buf и ptr.
- В buf выделяется память под строку, которая считывается из стандартного ввода с помощью функции fgets.
- Указатель ptr инициализируется значением buf.
- В цикле for перебираются все символы строки, начиная с первого, и выводятся на экран.
- После цикла выводится новая строка.
- Выводится значение переменной buf с помощью функции printf.