21xrx.com
2025-03-27 23:02:05 Thursday
文章检索 我的文章 写文章
结构体在c++中用于统计英文选段中英文单词出现的次数
2023-06-29 21:25:23 深夜i     13     0
结构体 C++ 英文单词 统计 出现次数

在C++中,结构体是一个非常有用的数据类型,可以用于统计英文选段中英文单词出现的次数。

一个结构体可以包含多个不同类型的数据成员,这使得它非常适合用于编写需要存储多个相关数据的程序。在这里,我们可以使用一个结构体来存储每个单词的出现次数。

首先,我们需要定义一个结构体,用于存储单词和它的出现次数:

struct wordCount
  string word;
  int count;
;

在这里,我们定义了一个结构体`wordCount`,它包含两个数据成员:一个`string`类型的`word`用于存储单词,一个`int`类型的`count`用于存储单词出现的次数。

接下来,我们需要读入英文文本,并将其中的单词存储到一个字符串向量中:

vector<string> words;
string line;
getline(cin, line);
istringstream iss(line);
string word;
while(iss >> word){
  words.push_back(word);
}

这里我们使用了一个字符串流`istringstream`,它可以将一个字符串分割成多个单词。每次从`iss`中读取一个单词,并将其存储到`words`向量中。

接着,我们需要对`words`向量中的每个单词进行处理,统计出现次数,并存储到一个`wordCount`结构体数组中:

int n = words.size();
wordCount wc[n];
int count = 0;
for(int i = 0; i < n; i++){
  bool flag = false;
  for(int j = 0; j < count; j++){
    if(words[i] == wc[j].word){
      wc[j].count++;
      flag = true;
      break;
    }
  }
  if(!flag){
    wc[count].word = words[i];
    wc[count].count = 1;
    count++;
  }
}

这里我们定义了一个`wordCount`结构体数组`wc`,并使用两个循环分别遍历`words`向量和`wc`数组。在循环中,我们查找`words`向量中的单词是否已经出现在`wc`数组中,如果已经出现,就将对应的`count`加1。如果单词还没有出现过,就将它添加到`wc`数组中,并将对应的`count`设置为1。

最后,我们可以输出每个单词出现的次数:

for(int i = 0; i < count; i++){
  cout << wc[i].word << " " << wc[i].count << endl;
}

这里使用一个循环遍历`wc`数组,并输出每个单词及它的出现次数。

综上所述,使用结构体统计英文选段中英文单词的出现次数是一个非常有用的技巧,在C++中编写也非常方便。通过这种方法,我们可以轻松地分析和处理英语文本,并提取出有用的信息。

  
  

评论区