Подсчитать количество слов в каждом заданном предложении - 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;
}

Объяснение кода листинга программы

  1. В функции words_count происходит подсчет количества слов в строке. Функция использует функцию strtok для разделения строки на слова и символы-разделители. Если функция strtok вернула значение, отличное от NULL, то это слово, и функция вызывает себя рекурсивно для подсчета слов в оставшейся части строки. Если функция strtok вернула NULL, то это означает, что все слова в строке уже были обработаны, и функция возвращает общее количество слов.
  2. В функции words_in_sentences происходит подсчет количества слов в каждом предложении исходного текста. Функция использует функцию strtok_r для разделения текста на предложения и символы-разделители. В цикле for происходит обработка каждого предложения. Для каждого предложения вызывается функция words_count для подсчета количества слов, и это количество выводится на экран.
  3. В функции main создается тестовый текст, который содержит несколько предложений. Этот текст выводится на экран. Затем вызывается функция words_in_sentences для подсчета количества слов в каждом предложении, и результаты выводятся на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы