Ввести строку, вывести пословно на экран, но слова в обратном порядке - 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. Эта функция переворачивает порядок слов в строке и выводит их на экран через разделитель. Список действий, которые выполняются в коде:

  1. Предупреждение: в коде есть несколько потенциальных проблем, которые могут привести к неопределенному поведению или сбоям.
  2. Код использует функцию strtok для разделения строки на слова. Функция strtok модифицирует входную строку, поэтому ее следует использовать осторожно.
  3. Функция print_reversed_words вызывается рекурсивно, пока не будет найдено еще одно слово.
  4. Если слово найдено, функция print_reversed_words вызывает себя для оставшейся части строки и выводит текущее слово в обратном порядке.
  5. Если строка пуста, вызывается функция printf для вывода строки-разделителя и завершения работы функции.
  6. В функции main создается массив типа string_t для хранения введенной строки.
  7. Пользователю предлагается ввести строку.
  8. Если строка успешно введена и разделена на слова, вызывается функция print_reversed_words для вывода перевернутых слов.
  9. Цикл продолжается до тех пор, пока пользователь не введет строку.
  10. В конце программы возвращается 0, указывая на успешное завершение работы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы