Как реализовать счетчик частоты употребления слова в тексте на с++?

Пользователь

от fred , в категории: C/C++ , год назад

Как реализовать счетчик частоты употребления слова в тексте на с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kurt , год назад

@fred 

Существует много способов реализации счетчика частоты употребления слов в тексте на C++. Один из возможных подходов заключается в использовании контейнера std::map для хранения слов и их частот.


Вот пример кода на C++, который считает частоту употребления слов в тексте, заданном в виде строки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <map>
#include <string>
#include <sstream>

int main() {
    // Создание пустого map для хранения слов и их частот.
    std::map<std::string, int> wordCount;

    // Текст, в котором нужно посчитать частоту употребления слов.
    std::string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";

    // Используем stringstream для разбиения строки на слова.
    std::stringstream ss(text);
    std::string word;
    while (ss >> word) {
        // Приводим слово к нижнему регистру.
        for (auto& c : word) {
            c = std::tolower(c);
        }

        // Добавляем слово в map или увеличиваем его частоту.
        wordCount[word]++;
    }

    // Выводим результаты подсчета.
    for (const auto& pair : wordCount) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}


В данном примере текст разбивается на слова с помощью std::stringstream, затем каждое слово приводится к нижнему регистру и добавляется в std::map. Если слово уже было добавлено в std::map, то его частота увеличивается на 1. После обработки всего текста, выводятся результаты подсчета частоты употребления каждого слова в тексте.