Переписать слова, которые заканчиваются символом - C (СИ)

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

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

Прошу помощи с лабораторной работой Переписать слова, которые заканчиваются символом ‘z’ и в которых отсутствуют символы десятичных цифр.
Само задание: В исходной строке записаны слова через один или несколько пробелов. В начале и в конце строки также могут быть пробелы. Переписать в результирующую строку слова через один пробел. В начале и конце строки пробелов быть не должно. Слово это последовательность символов не равных пробелу. Если в исходной строке нет слов, удовлетворяющих поставленному условию, то результирующая строка пустая.

Решение задачи: «Переписать слова, которые заканчиваются символом»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
 
#define DELIM ",.-;:!? \t\n"
#define VOWELS "zZ"
#define is_vowel(c) (  strchr(VOWELS, (c)) )
 
int main(void) {
    char * ptr, buf[BUFSIZ];
 
    while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n')
        for (ptr = strtok(buf, DELIM); ptr; ptr = strtok(NULL, DELIM))
            if (is_vowel(ptr[strlen(ptr) - 1]));
                printf("%s\n", ptr);
 
    return 0;
}

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

  1. Подключаются необходимые заголовочные файлы
  2. Определяются константы:
    • DELIM - символ, который разделяет слова в строке (пробел, точка, запятая, дефис, точка с запятой, вопросительный знак, восклицательный знак, табуляция)
    • VOWELS - строка, содержащая гласные буквы (в данном случае zZ, так как в коде реализована проверка на окончание слова на гласную букву)
  3. Определяется функция is_vowel, которая проверяет, является ли последний символ строки гласной буквой
  4. В основной функции программы объявляются указатель ptr и буфер buf
  5. В цикле while происходит запрос на ввод строки от пользователя и разделение этой строки на слова с помощью функции strtok. Каждое слово проверяется на окончание на гласную букву с помощью функции is_vowel. Если слово заканчивается на гласную букву, оно выводится на экран
  6. Завершается функция main, и программа заканчивает свою работу

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


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

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

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