Произвести в предложении поиск слова в котором будет наибольшее количество гласных букв - C (СИ)
Формулировка задачи:
Необходимо написать код на СИ.
Задание:Набрать с клавиатуры предложение и произвести в нем поиск слова в котором будет наибольшее количество гласных букв и вывести это слово.
Спасибо большое за внимание и поддержку!
Решение задачи: «Произвести в предложении поиск слова в котором будет наибольшее количество гласных букв»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { const char CDelim[] = " \t\n,..!?"; const char CVowel[] = "aeiouy"; char text[256]; char* ptr, * pcur, * pmax = NULL; int max = 0, cnt; printf("text: "); fgets(text, sizeof(text), stdin); ptr = strtok(text, CDelim); while (ptr) { cnt = 0; for (pcur = ptr; *pcur; ++pcur) { if (strchr(CVowel, tolower(*pcur))) { cnt++; } } if (max < cnt) { pmax = ptr; max = cnt; } ptr = strtok(NULL, CDelim); } if (pmax) { printf("maximum vowels(%d) in '%s' word\n", max, pmax); } else { printf("words with vowels not found\n"); } return 0; }
Объяснение кода листинга программы
В этом коде ищется слово в предложении, в котором содержится наибольшее количество гласных букв. Вот список действий, которые происходят в коде:
- Синтаксический анализ: В первых трех строках подключаются необходимые библиотеки.
- Инициализация переменных: В следующих строках объявляются и инициализируются необходимые переменные.
CDelim[]
- это строка-разделитель, которая определяет символы, используемые в качестве разделителей в предложении (пробел, табуляция, перевод строки, точка, запятая, двоеточие, восклицательный знак, вопросительный знак).CVowel[]
- это строка, содержащая гласные буквы (a, e, i, o, u, y).text[256]
- это массив символов, в который считывается предложение.ptr
,pcur
,pmax
- это указатели на символы в предложении.max
- это счетчик, который отслеживает количество гласных букв в текущем слове.cnt
- это счетчик, который отслеживает количество гласных букв в текущем слове.
- Получение предложения от пользователя: В следующей строке предложение считывается из стандартного ввода.
- Разбиение предложения на слова: В следующей строке предложение разбивается на слова с использованием функции
strtok()
. Первый вызов этой функции возвращает первое слово в предложении, второй вызов - следующее слово, и так далее. - Подсчет гласных букв в каждом слове: Для каждого слова выполняется цикл, который проходит по каждому символу в слове. Если символ является гласной буквой, счетчик
cnt
увеличивается. - Поиск слова с наибольшим количеством гласных букв: После подсчета количества гласных букв в каждом слове, осуществляется поиск слова с наибольшим количеством гласных букв. Если такое слово найдено, указатель
pmax
указывает на это слово, а переменнаяmax
содержит количество гласных букв в этом слове. - Вывод результата: В последних строках кода выводится сообщение, указывающее, было ли найдено слово с наибольшим количеством гласных букв, и если да, то какое это слово и сколько в нем гласных букв. Вот список номеров и соответствующих действий:
- Подключение необходимых библиотек
- Инициализация переменных
- Считывание предложения от пользователя
- Разбиение предложения на слова
- Подсчет гласных букв в каждом слове
- Поиск слова с наибольшим количеством гласных букв
- Вывод результата
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д