Найти все слова, начинающиеся и кончающиеся согласными буквами - C (СИ)
Формулировка задачи:
Дана непустая последовательность слов (не более 30), в каждом слове не более восьми строчных латинских букв. Слова разделены запятой, за последним словом точка. Найти все слова, начинающиеся и кончающиеся согласными буквами.
Очень буду благодарен за помощь в решении! Спасибо.
Решение задачи: «Найти все слова, начинающиеся и кончающиеся согласными буквами»
textual
Листинг программы
#include <string.h> #include <ctype.h> int main() { const char CDelim[] = " \t\n,.?!"; //const char CAlpha[] = "BCDFGHJKLMNPQRSTVWXZ"; const char alpha[] = "AEIOUYaeiouy"; char text[128]; char* str; fgets(text, sizeof(text), stdin); str = strtok(text, CDelim); while (str != NULL) { char first = str[0]; char last = str[strlen(str) - 1]; if (!strchr(alpha, first) && isalpha(first) && !strchr(alpha, last) && isalpha(last)) { printf("-> %s\n", str); } str = strtok(NULL, CDelim); } return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две константные строки: CDelim и alpha.
- CDelim содержит символы-разделители (пробел, табуляция, перевод строки, запятая, точка, вопросительный знак, восклицательный знак).
- alpha содержит алфавит, состоящий только из гласных букв.
- Объявлена переменная text типа char, которая может хранить строку длиной до 128 символов.
- В эту переменную считывается строка из стандартного ввода (клавиатуры).
- В цикле while происходит обработка каждого слова из введенной строки.
- Сначала слово разбивается на две переменные: first (первый символ слова) и last (последний символ слова).
- Проверяется, являются ли первый и последний символы слова гласными (проверка с помощью функции isalpha и массива alpha).
- Если оба символа не являются гласными, то слово выводится на экран.
- В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д