Текст состоит из слов, разделенных пробелами. Подсчитать количество слов, начинающихся с буквы К - C (СИ)
Формулировка задачи:
Дан текст произвольной длины, оканчивающий точкой. Текст состоит из слов, разделенных проблемами. Подсчитать:
Количество слов, начинающихся с буквы К.
Программу я написал, но осталось сделать цикл с параметром. Суть его такова:
Пока не будет принята точка, он все обрабатывает. Потом, как принялась буква К - в переменную типа boolean записывает 1.
И если после этого будет принят пробел, он прибавляет единицу в счетчике.
Наработки по коду:
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int num=0;
char temp, prev;
do{
temp = getchar();
prev = temp;
if(prev == 'k'){
temp = getchar();
if(prev == 'k" && temp == ' ' || prev == 'K' && remp == ' ")
num++;
}
}while(temp !='.');
printf("Words with 'K' = %d", num);
printf("\nPress any key!");
getch();
}Решение задачи: «Текст состоит из слов, разделенных пробелами. Подсчитать количество слов, начинающихся с буквы К»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
int main (void)
{
char ch;
char prev = ' ';
int count = 0;
do{
ch = getchar();
if((ch == 'k' || ch == 'K') && (prev == ' ' || prev == '\n')){
count++;
}
prev = ch;
} while(ch != '.');
printf("Words with 'K' = %d", count);
printf("\nPress any key!");
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Вводится символ, который считывается с помощью функции getchar().
- Если текущий символ 'k' или 'K' и предыдущий символ - пробел или конец строки, то увеличивается счетчик.
- Выводится количество слов, начинающихся с буквы 'K'.
- Программа ожидает нажатия любой клавиши для выхода.