Найти количество слов, содержащих в себе заданную букву - C (СИ)
Формулировка задачи:
Здравствуйте! Прошу помочь мне с такой задачей: С клавы ввести предложение и букву. Найти количество слов с заданной буквой.
Заранее спасибо!!!
Решение задачи: «Найти количество слов, содержащих в себе заданную букву»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[256];
char a;
char* pch = NULL;
int N = 0;
gets(str);
scanf("%c", &a);
pch = strtok(str, " ,.!?");
while (pch != NULL)
{
if (strchr(pch, a) != NULL)
{
N++;
}
pch = strtok(NULL, " ,.!?");
}
printf("N = %d\n", N);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
str- массив символов (строка), размер которого 256 символов;a- символ;pch- указатель на первый символ подстроки, выделяемой в строкеstrпри помощи функцииstrtok;N- счётчик, который инициализируется нулём.
- Вводится строка с помощью функции
gets(str). - С помощью функции
scanfвводится символa. - В цикле с помощью функции
strtokстрокаstrделится на подстроки, ограниченные символами пробела, запятой, точки, восклицательного и вопросительного знаков. При этом, указательpchполучает первый символ каждой подстроки. - В каждой подстроке проверяется наличие символа
aс помощью функцииstrchr. Если символaприсутствует в подстроке, то счётчикNувеличивается на единицу. - После проверки всех подстрок, выводится значение счётчика
N. - Программа завершается, возвращая в систему значение 0, что означает успешный конец работы.