需要计算特定单词的实例数

Need to count number of instances of a specific word

本文关键字:实例 单词 计算      更新时间:2023-10-16

我有一个家庭作业问题,它想要一个程序来计算用户输入中特定单词的实例数。它只需要计算空格之间的单词。我认为我们需要使用一个向量,并在每次出现"单词"实例时添加它。然后在最后,使用 v.size() 来告诉向量的大小。这是我到目前为止所拥有的,但它不会编译,我很确定它不正确:

#include <iostream> 
#include <string>
#include <vector>
using namespace std;
int main()
{
  string word;
  vector<string> v;
  while (cin >> word)
  {
    if (v == "word")
    {
      v.push_back (word);
    }
  }
  cout << v.size();
  return 0;
}
  1. if(v == "word") - 您正在尝试将向量v与"单词"字符串进行比较。输入存储在word变量中。如果你要计算的单词是"单词",那么它应该是if(word == "word")

  2. 你不需要push_back你的话——你很清楚它们都是一样的,对吧?相反,创建一个计数器变量,并在每次遇到所需单词时递增它。

这些想法应该能帮助你入门。

v

== "单词"对我来说没有意义。 v 是一个向量,对吗?如果是这样,v == "word" 正在将字符串向量与字符串进行比较,这是行不通的。

我个人建议使用地图或字典。下面是有关 c++ 映射的文档。惊人的数据结构 0.0

http://en.cppreference.com/w/cpp/container/map

我在大学时做过类似练习的方式是这样的:

//Pseudocode activate
Map<string, int> my_map = new Map();
String word;
while(there is input){
    my_map.at(word)++;
}
for all entries in my_map{
    print my_map keys: my_map values
}

如果你只需要计算"单词"的数量,你可以使用类似的东西:

int count = -1;
do
{
cout << "Word: ";
cin >> word;
count++;
system("cls");
}while(condition)
printf("Result:%d", cout);

和一个计数来获得条件的数量 == true