用结构体和输入输出流编写一程序,允许从键盘输入任意多个英语单词,中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数。
时间: 2023-05-21 09:04:56 浏览: 70
以下是基于您提供的要求的示例代码:
```cpp
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
struct WordCount {
string word;
int count;
};
bool WordCompare(const WordCount& w1, const WordCount& w2)
{
return w1.word < w2.word;
}
int main()
{
string word;
map<string, int> word_count;
cout << "请输入任意多个英语单词,中间用空格分开,输入0表示输入结束:" << endl;
cin >> word;
while (word != "0")
{
word_count[word]++;
cin >> word;
}
vector<WordCount> words;
for (auto it = word_count.begin(); it != word_count.end(); it++)
{
WordCount wc;
wc.word = it->first;
wc.count = it->second;
words.push_back(wc);
}
sort(words.begin(), words.end(), WordCompare);
cout << "按字典顺序输出单词及其出现次数:" << endl;
for (auto wc : words)
{
cout << wc.word << " " << wc.count << endl;
}
return 0;
}
```
这个程序通过使用一个 `map` 来统计每个单词的出现次数,并将其存储在一个包含单词和出现次数的 `struct` 中。然后,使用 `sort` 函数将单词按字典顺序排序,并输出每个单词及其出现次数。
记得在程序结束后输入 `0` 以结束输入。希望这可以帮到您!
阅读全文