Ввести строку, вывести пословно на экран, но слова в обратном порядке - C (СИ) (75067)
Формулировка задачи:
Ввести строку, вывести пословно на экран, но слова в обратном порядке.
Решение задачи: «Ввести строку, вывести пословно на экран, но слова в обратном порядке»
textual
Листинг программы
#include <stdio.h> #include <string.h> void print_reversed_words(char * str, const char * delim) { if ( str = strtok(str, delim) ) { print_reversed_words(NULL, delim); printf("%s ", str); } } typedef char string_t[256]; #define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 ) #define DELIM " \t\n" int main(void) { string_t str; while ( printf("\nString: ") && get_string(str) && printf("Reversed: ") ) print_reversed_words(str, DELIM); return 0; }
Объяснение кода листинга программы
В этом коде реализована функция print_reversed_words
, которая принимает два аргумента: строку str
и строку-разделитель delim
. Эта функция переворачивает порядок слов в строке и выводит их на экран через разделитель.
Список действий, которые выполняются в коде:
- Предупреждение: в коде есть несколько потенциальных проблем, которые могут привести к неопределенному поведению или сбоям.
- Код использует функцию
strtok
для разделения строки на слова. Функцияstrtok
модифицирует входную строку, поэтому ее следует использовать осторожно. - Функция
print_reversed_words
вызывается рекурсивно, пока не будет найдено еще одно слово. - Если слово найдено, функция
print_reversed_words
вызывает себя для оставшейся части строки и выводит текущее слово в обратном порядке. - Если строка пуста, вызывается функция
printf
для вывода строки-разделителя и завершения работы функции. - В функции
main
создается массив типаstring_t
для хранения введенной строки. - Пользователю предлагается ввести строку.
- Если строка успешно введена и разделена на слова, вызывается функция
print_reversed_words
для вывода перевернутых слов. - Цикл продолжается до тех пор, пока пользователь не введет строку.
- В конце программы возвращается 0, указывая на успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д