21xrx.com
2024-12-27 20:02:17 Friday
登录
文章检索 我的文章 写文章
C++中如何用数组统计单词
2023-06-27 14:23:13 深夜i     --     --
C++ 数组 统计 单词

在C++中,如果需要统计一个文本中出现的单词数量或者某个单词出现的次数,我们可以使用数组来实现。下面介绍一下如何用数组来统计单词。

首先,我们需要定义一个字符串变量来存储文本,例如:


string text = "Hello, world! This is a test.";

接着,我们需要将所有单词从文本中提取出来,并存储在一个数组中。可以使用字符串流来进行分词,例如:


stringstream ss(text); // 将文本存储到字符串流中

string word; // 定义一个字符串变量来存储每个单词

vector<string> words; // 定义一个字符串数组来存储所有单词

while (ss >> word) {

  words.push_back(word); // 将处理后的单词存储到数组中

}

通过上面的代码,我们已经将所有的单词提取出来并存储在了一个字符串数组中。接着,我们可以通过一个循环来统计每个单词出现的次数,例如:


int count[words.size()]; // 定义一个数组来存储每个单词出现的次数

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

  count[i] = 1; // 初始化每个单词出现的次数为1

  for (int j = i + 1; j < words.size(); j++) {

    // 比较每个单词是否相同

    if (words[i] == words[j]) {

      count[i]++; // 如果相同,单词出现的次数+1

      words.erase(words.begin() + j); // 删除数组中重复的单词

      j--; // 因为删除了一个单词,所以j需要-1

    }

  }

}

通过上面的循环,我们已经成功地统计了文本中每个单词出现的次数,并存储在了一个数组中。最后,我们可以通过一个循环来输出每个单词出现的次数,例如:


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

  cout << words[i] << ": " << count[i] << endl; // 输出每个单词和出现次数

}

通过上述代码,我们已经成功地利用数组统计了文本中每个单词出现的次数。虽然使用字符串流和数组可能看起来比较繁琐,但这种方法十分高效且常用,可以应用于各种文本处理场景。

  
  

评论区

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