Подсчитать количество согласных букв в строке - C (СИ)
Формулировка задачи:
Ввести с клавиатуры строку текста. Подсчитать количество согласных букв в строке.
Помогите...
Решение задачи: «Подсчитать количество согласных букв в строке»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int count_nv(const char* s){
int c, n = 0;
const char vs[] = "AEIOYU";
while(*s){
if(isalpha(*s)){
c = *s;
if(islower(c))
c = toupper(c);
if(strchr(vs, c) == NULL)
++n;
}
++s;
}
return n;
}
int main(void){
char s[64] = "ABCDEF(O)W";
/*
printf("Enter str: ");
fgets(s, sizeof(s), stdin);
*/
printf("count: %d\n", count_nv(s));
return 0;
}
Объяснение кода листинга программы
Вывод: В данном коде посчитано количество согласных букв в строке. Список элементов кода:
- Включение необходимых заголовочных файлов:
stdio.h- для использования функций ввода-вывода;ctype.h- для использования функций работы с символами;string.h- для использования функций работы со строками.
- Объявление функции
count_nv, которая принимает указатель на строку и считает количество согласных букв в ней. - Создание локальной переменной
cтипаintдля хранения текущей буквы. - Создание локальной переменной
nтипаintдля хранения количества согласных букв. - Создание константной строки
vs, которая содержит гласные буквы в верхнем регистре. - В цикле
whileпроисходит последовательный перебор символов входной строкиs. - С помощью условного оператора
ifпроверяется, является ли текущий символ буквой. - Если символ является буквой, то он преобразуется в верхний регистр и проверяется, является ли он гласной буквой.
- Если символ не является гласной буквой, то увеличивается счетчик
n. - В основной функции
mainсоздается массив символовsтипаcharдля хранения строки. - Комментарий позволяет ввести строку с клавиатуры, но в данном случае строка уже задана в коде.
- Вызывается функция
count_nvс передачей ей указателя на строкуs. - Выводится результат подсчета согласных букв в строке.
- Функция
mainвозвращает 0, что означает успешное завершение работы программы.