21xrx.com
2024-12-27 04:40:50 Friday
登录
文章检索 我的文章 写文章
C++计算单词次数
2023-07-03 01:07:40 深夜i     --     --
C++ 计算 单词 次数

C++是一种非常优秀的计算机编程语言,它有着很广泛的应用。在日常的编程开发中,统计一个文本文档的单词次数是非常常见的需要。因此,今天我们来介绍一下使用C++计算单词次数的方法。

首先,需要明确的是,一个字符串中的单词是指由空格或其他符号隔开的字符序列。因此,在开始计算前,需要先将文本文档中的所有符号去掉(如逗号、句号等),仅保留字母和数字。

接下来,我们可以使用C++中的字符串(string)与散列表(unordered_map)来快速统计单词次数。具体方法如下:

1. 定义一个unordered_map ,用于存储单词和对应的出现次数。

2. 将文本文档读入到一个字符串中,并进行基本的预处理操作。

3. 定义两个指针,一个指向字符串的开始位置,一个指向字符串的结束位置。

4. 使用循环,将字符串分割成一个一个的单词,将单词作为键值,将出现次数作为对应的值存储到unordered_map中。

5. 最后,遍历unordered_map,输出每个单词及其出现次数即可。

以下是具体的代码实现:


#include <iostream>

#include <string>

#include <unordered_map>

using namespace std;

unordered_map<string, int> wordCount;

void preprocess(string &s) {

  for (int i = 0; i < s.size(); ++i) {

    if (!isdigit(s[i]) && !isalpha(s[i])) {

      s[i] = ' ';

    }

  }

}

int main() {

  string s = "C++ is a popular programming language. It is widely used in software development. Many developers use C++ to create games and other applications.";

  preprocess(s);

  int start = 0, end = 0;

  while (end < s.size()) {

    if (s[end] == ' ') {

      if (end > start) {

        string word = s.substr(start, end - start);

        wordCount[word]++;

      }

      start = end + 1;

    }

    end++;

  }

  if (end > start) {

    string word = s.substr(start, end - start);

    wordCount[word]++;

  }

  for (auto &it : wordCount)

    cout << it.first << ": " << it.second << endl;

  

  return 0;

}

以上就是使用C++计算单词次数的详细介绍和代码实现,希望对大家有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复