Из введенного текста сначала распечатать слова, заканчивающиеся на согласную букву, а потом на гласную букву - C (СИ)

Узнай цену своей работы

Формулировка задачи:

ребят нужна помощь(( по возможности напишите код на СИ. Условие: Из введенного текста сначала распечатать слова, заканчивающиеся на согласную букву, а потом на гласную букву...

Решение задачи: «Из введенного текста сначала распечатать слова, заканчивающиеся на согласную букву, а потом на гласную букву»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
void prn(char * s, const char * delim) {
    if ( s = strtok(s, delim) ) {
        if ( strchr("aeiouy", *(s + strlen(s) - 1)) ) {
            prn(NULL, delim);
            printf("%s ", s);
        }
        else {
            printf("%s ", s);
            prn(NULL, delim);
        }
    }
}
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("\nString: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        prn(buf, DELIM);
}

Объяснение кода листинга программы

В этом коде используется функция prn, которая принимает два аргумента: строку s и строку-разделитель delim. Эта функция разделяет входную строку на слова, используя разделитель, и затем проверяет, оканчивается ли каждое слово на гласную букву. Если слово оканчивается на гласную, функция вызывает саму себя (это называется рекурсией), чтобы обработать следующую часть входной строки. Если слово не оканчивается на гласную, оно выводится на экран. Функция main использует цикл while для получения строки от пользователя и вызова функции prn. Когда пользователь вводит пустую строку, программа завершается. Вот список действий, которые происходят в коде:

  1. Ввод строки от пользователя с помощью fgets.
  2. Вызов функции prn с входной строкой и строкой-разделителем.
  3. Внутри функции prn происходит проверка: если входная строка не равна NULL, то она разделяется на слова с помощью strtok.
  4. Для каждого слова происходит проверка: если последнее символов в слове является гласной, то функция вызывает саму себя для обработки следующей части входной строки.
  5. Если последнее символов в слове не является гласной, то слово выводится на экран.
  6. После обработки всех слов во входной строке, функция возвращает управление в функцию main.
  7. Если пользователь вводит пустую строку, цикл while завершается и программа завершается.

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


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

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

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