用结构体和输入输出流编写一程序,允许从键盘输入任意多个英语单词,中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数。
时间: 2023-05-21 14:04:54 浏览: 85
好的,以下是一份示例代码:
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
struct WordCount {
string word;
int count;
};
int main() {
map<string, int> counts;
string word;
while (cin >> word && word != "0") {
counts[word]++;
}
int numWords = counts.size();
WordCount* words = new WordCount[numWords];
int i = 0;
for (auto it = counts.begin(); it != counts.end(); ++it) {
words[i].word = it->first;
words[i].count = it->second;
i++;
}
sort(words, words + numWords, [](const WordCount& a, const WordCount& b) {
return a.word < b.word;
});
for (int i = 0; i < numWords; i++) {
cout << words[i].word << " " << words[i].count << endl;
}
delete[] words;
return 0;
}
以上代码使用了 STL 的 map 功能来统计单词数量,然后将单词和数量存入结构体数组中,最后按字典序排序并输出。如果您有任何疑问,欢迎随时询问。
阅读全文