Определить количество предложений в тексте - C (СИ)
Формулировка задачи:
Определить количество предложений, учитывая, что предложение заканчивается точкой, вопросительным или восклицательным знаками.
Вот тут начал писать
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define RAZD " .,;:\n\t?!/\\"
#define N 300
int Check(char *s)
{
int i,len;
i=0;
len = strlen(s);
if (ВОТ ЗДЕСЬ НУЖНО УСЛОВИЕ))
return 1;
else
return 0;
}
int main ()
{
char S[N], *word;
int n,i,j=0;
fgets(S,N,stdin);
n=strlen(S);
for(i=0;i<n;i++)
if (strchr(RAZD,S[i]))
S[i]='\0';
i=0;
while(i<n)
{
while (i<n && S[i]=='\0')
i++;
word=&S[i];
if (Check(word))
{
puts(word);
j++;
}
while (i<n && S[i]!='\0')
i++;
}
printf("%d",j);
getchar();
return 0;
}Решение задачи: «Определить количество предложений в тексте»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define N 300
int main ()
{
char S[N];
int j=0;
fgets(S,N,stdin);
char*pch = strtok(S,".!?");
while(pch != NULL)
{
pch = strtok(NULL,".!?");
j+=1;
}
printf("%d",j-1);
return 0;
}
Объяснение кода листинга программы
- В начале программы подключаются необходимые библиотеки: stdio.h, ctype.h и string.h.
- Задается константа N, которая определяет максимальный размер входной строки.
- В функции main() объявляется переменная S типа char, которая будет использоваться для хранения входной строки.
- Переменная j инициализируется значением 0 и будет использоваться для подсчета количества предложений.
- С помощью функции fgets() вводится строка из стандартного ввода (клавиатуры).
- Функция strtok() используется для разделения входной строки на предложения, используя точки, восклицательные знаки и вопросительные знаки в качестве разделителей.
- В цикле while(pch != NULL) происходит следующее:
- pch = strtok(NULL,
.!?); продолжает поиск следующего разделителя. - j+=1; увеличивает счетчик j на 1.
- pch = strtok(NULL,
- После окончания цикла выводится значение j-1 с помощью функции printf().
- Программа возвращает 0, что означает успешное завершение.