Произвести в предложении поиск слова в котором будет наибольшее количество гласных букв - 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
содержит количество гласных букв в этом слове. - Вывод результата: В последних строках кода выводится сообщение, указывающее, было ли найдено слово с наибольшим количеством гласных букв, и если да, то какое это слово и сколько в нем гласных букв. Вот список номеров и соответствующих действий:
- Подключение необходимых библиотек
- Инициализация переменных
- Считывание предложения от пользователя
- Разбиение предложения на слова
- Подсчет гласных букв в каждом слове
- Поиск слова с наибольшим количеством гласных букв
- Вывод результата
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д