Ввести строку, вывести пословно на экран, но слова в обратном порядке - C (СИ) (74560)
Формулировка задачи:
если можно, с комментариями:
Ввести строку, вывести пословно на экран, но слова в обратном порядке.
Решение задачи: «Ввести строку, вывести пословно на экран, но слова в обратном порядке»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
void prw(char * s, const char * delim) {
if ( s = strtok(s, delim) ) {
prw(NULL, delim);
printf("%s ", s);
}
}
int main(void) {
char str[] = "any many money more";
prw(str, " \t\n");
return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция prw, которая принимает два аргумента: указатель на строку s и указатель на строку-разделитель delim. Если s не равно NULL, то функция вызывает саму себя, передавая в качестве аргумента NULL и delim, и выводит s с пробелом в конце.
Список элементов кода:
- Включение необходимых заголовочных файлов:
stdio.hиstring.h. - Объявление функции
prw. - Проверка условия: если
sне равноNULL, то вызывается рекурсивно функцияprwс аргументамиNULLиdelim, и выводитсяsс пробелом в конце. - В основной функции
mainсоздаётся строкаany many money moreи передаётся в функциюprwс аргументом\t\n. - Выход из функции
mainс возвращаемым значением 0.