Подсчитать количество слов в каждом заданном предложении - C (СИ)
Формулировка задачи:
помогите пожалуйста с программой на языке си
задание: даны n предложений. подсчитать количество слов в каждом предложении
Решение задачи: «Подсчитать количество слов в каждом заданном предложении»
textual
Листинг программы
#include <stdio.h> #include <string.h> size_t words_count(char * str, const char * delim) { return ( strtok(str, delim) ) ? 1 + words_count(NULL, delim) : 0; } void words_in_sentences(char * text, const char * words_delim, const char * sentences_delim) { char * current, * next; size_t sentcount; for ( sentcount = 0, current = strtok_r(text, sentences_delim, &next); current && ++sentcount; current = strtok_r(NULL, sentences_delim, &next) ) printf("%lu: %lu word(s)\n", sentcount, words_count(current, words_delim)); } #define WORDS_DELIM " \t\n" #define SENTENCES_DELIM ".!?" int main(void) { char text[] = "Jingle bells.\nJingle bells.\nJingle all the Way!"; printf("TEXT:\n%s\nWORDS IN SENTENCES:\n", text); words_in_sentences(text, WORDS_DELIM, SENTENCES_DELIM); return 0; }
Объяснение кода листинга программы
- В функции words_count происходит подсчет количества слов в строке. Функция использует функцию strtok для разделения строки на слова и символы-разделители. Если функция strtok вернула значение, отличное от NULL, то это слово, и функция вызывает себя рекурсивно для подсчета слов в оставшейся части строки. Если функция strtok вернула NULL, то это означает, что все слова в строке уже были обработаны, и функция возвращает общее количество слов.
- В функции words_in_sentences происходит подсчет количества слов в каждом предложении исходного текста. Функция использует функцию strtok_r для разделения текста на предложения и символы-разделители. В цикле for происходит обработка каждого предложения. Для каждого предложения вызывается функция words_count для подсчета количества слов, и это количество выводится на экран.
- В функции main создается тестовый текст, который содержит несколько предложений. Этот текст выводится на экран. Затем вызывается функция words_in_sentences для подсчета количества слов в каждом предложении, и результаты выводятся на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д