Переписать строку в обратном порядке - C (СИ) (77928)
Формулировка задачи:
Дана задача "Пожалуйста, исправьте код! Очень срочно!
Введите с клавиатуры строку символов, после чего запишите ее содержимое в другую строку в обратном порядке. Далее выведите вторую строку на экран."
Моё решение. Реализовать надо на языке СИ (не СИ++)#include <stdio.h> void main() { char *uk1,*uk2; puts("Vvedite slovo"); scanf(uk2); uk1=uk2; while(*uk2!='\0') putchar(*uk2++); putchar('\n'); while(--uk2 >= uk1) putchar(*uk2); putchar('\n'); }
Решение задачи: «Переписать строку в обратном порядке»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char buf[BUFSIZ]; char str[BUFSIZ]; int i; int j; fgets (buf, BUFSIZ, stdin); for (i = strlen (buf) - 1, j = 0 ; i >= 0 ; --i, ++j ) str[j] = buf[i]; str[j] = '\0'; printf (" %s \n " str); system ("pause"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и вводом-выводом
- Объявление переменных:
- buf[BUFSIZ] - массив для чтения строки из стандартного ввода
- str[BUFSIZ] - массив для хранения перевернутой строки
- i, j - индексы для перемещения по массивам
- Чтение строки с помощью функции fgets в массив buf
- Переменная i инициализируется значением длины строки, а переменная j - нулем. Цикл выполняется до тех пор, пока i больше или равно нулю.
- При каждой итерации значение i уменьшается на единицу, а значение j увеличивается на единицу.
- Значение buf[i] копируется в str[j]
- Последний символ в массиве str обнуляется для корректного завершения строки
- Вывод перевернутой строки с помощью функции printf
- Ожидание нажатия клавиши с помощью функции system(
pause
) - Возврат 0 для завершения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д