Переписать строку в обратном порядке - C (СИ) (79827)
Формулировка задачи:
НЕЛЬЗЯ ПОЛЬЗОВАТЬСЯ "#include<string.h">
ЗАД№1 Введите с клавиатуры строку символов, после чего запишите ее содержимое в другую строку в обратном порядке. Далее выведите вторую строку на экран. ЗАД №2 Введите с клавиатуры строку символов, после чего выведите на экран ее подстроку,включающую в себя символы с 5-го по 15-й. ЗАД №3Введите с клавиатуры строку символов, представляющую собой некоторое предложение. Найдите среди слов предложения самое длинное слово и выведите его на экран. №1 НЕ РАБОТАЕТ((( НЕ ПРАВИЛЬНО РАБОТАЕТ((((((((#include <stdio.h> #include <conio.h> void main() { const int n=100; char str[n], str2[n], *p, *k; int i; printf("vvedute stroky: "); gets(str); p=str; k=&str2[n]; for(i=0;i<n;i++) *(k-i)=*(p+i); puts("\n\npreabrazovannaya stroka:\n"); puts(str2); puts("\n"); }
Решение задачи: «Переписать строку в обратном порядке»
textual
Листинг программы
#include <stdio.h> int main() { char src[128] = "\0"; char dst[128] = "\0"; char* psrc = &src[sizeof(src)]; char* pdst = &dst[0]; /** читаем строку */ fgets(src, sizeof(src), stdin); /** находим ее конец */ for ( ; *psrc == 0; psrc-- ); /** реверсируем */ for ( ; psrc != &src[0]; ) { *pdst++ = *psrc--; } printf("%s\n", dst); return 0; }
Объяснение кода листинга программы
В этом коде:
- Создаются две строки: исходная
src
и целеваяdst
. Обе строки инициализируются нулевым символом, что является признаком пустой строки. - Указатель
psrc
инициализируется адресом последнего элемента массиваsrc
, который считается пустым, поскольку мы только что его инициализировали нулевым символом. - Указатель
pdst
инициализируется адресом первого элемента массиваdst
. - Строка
src
считывается с помощью функцииfgets()
. - Затем ищется конец строки путем цикла, который продолжается, пока не встретит нулевой символ.
- После того, как найден конец строки, начинается процесс реверса строки. Для этого используется еще один цикл, который продолжается, пока не встретит нулевой символ. В каждой итерации символ копируется из исходной строки в целевую строку.
- Наконец, отформатированная строка выводится на консоль с помощью функции
printf()
. - Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д