Подсчитать сумму количества букв и количества гласных букв во введенном тексте - C (СИ)
Формулировка задачи:
Написать программу, которая запрашивает у пользователя текст, а затем подсчитывает в нем сумму количества букв и количества гласных букв.
операции подсчета количества чего-либо в строке должны быть реализованы в виде отдельных функций.
Решение задачи: «Подсчитать сумму количества букв и количества гласных букв во введенном тексте»
textual
Листинг программы
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX 128
int GetCharsCount (const char *str);
int GetVowelsCount(const char *str);
int IsVowel(const char c);
int main()
{
char str[MAX];
fgets(str, MAX, stdin);
printf("Chars:%d\nVowels:%d\n", GetCharsCount(str), GetVowelsCount(str));
return 0;
}
int GetCharsCount (const char *str)
{
int counter = 0;
const char *p;
for (p = str; *p; ++p)
if (isalpha(*p))
counter++;
return counter;
}
int GetVowelsCount(const char *str)
{
int counter = 0;
const char *p;
for (p = str; *p; ++p)
if (IsVowel(*p))
counter++;
return counter;
}
int IsVowel(const char c)
{
static const char *vowels = "aeiouy";
const char *p, cLow = tolower(c);
for (p = vowels; *p; ++p)
if (*p == cLow)
return 1;
return 0;
}
Объяснение кода листинга программы
В этом коде на языке C выполняется подсчет количества букв и количества гласных букв в введенном тексте. Список функций и переменных:
- #include
- подключает функции для работы со строками и символами, включая функцию tolower()для преобразования регистра символов. - #include
- подключает функции для ввода и вывода данных, включая функцию fgets()для считывания строки из стандартного ввода. - #include
- подключает функции для работы с памятью и строками, включая функцию malloc()для выделения памяти и функциюstrlen()для подсчета длины строки. - #define MAX 128 - определяет максимальную длину строки, которую можно обработать.
- *int GetCharsCount (const char str);** - функция для подсчета количества символов в строке.
- *int GetVowelsCount(const char str);** - функция для подсчета количества гласных букв в строке.
- int IsVowel(const char c); - функция для проверки, является ли символ гласной буквой.
- int main() - точка входа в программу, где происходит считывание строки из стандартного ввода и вывод результатов. Список действий:
- В функции
main()создается массив символовstrмаксимальной длинойMAX. - С помощью функции
fgets()в этот массив считывается строка из стандартного ввода. - Функции
GetCharsCount()иGetVowelsCount()вызываются для подсчета количества символов и гласных букв в строке соответственно. - Результаты подсчета выводятся на экран с помощью функции
printf(). - В функции
GetCharsCount()создается переменнаяcounterдля подсчета количества символов. - В цикле
forпроходится по каждому символу строкиstr. - Если символ является буквой (проверка
isalpha(*p)), то увеличиваем счетчикcounter. - В функции
GetVowelsCount()создается переменнаяcounterдля подсчета количества гласных букв. - В цикле
forпроходится по каждому символу строкиstr. - Если символ является гласной буквой (проверка
IsVowel(*p)), то увеличиваем счетчикcounter. - В функции
IsVowel()создается переменнаяcLowдля преобразования регистра символаcв нижний регистр. - В цикле
forпроходится по каждому гласному символу в массивеvowels. - Если текущий гласный символ равен символу
cLow, то возвращается значение1. - В функции
main()возвращается значение0, что означает успешное выполнение программы.