Переписать строку в обратном порядке - 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 для завершения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д