Определить количество предложений в тексте - 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, что означает успешное завершение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д