编写程序,按照字典序列出一个文件中的所有不同单词及其出现次数。
时间: 2024-02-25 18:58:08 浏览: 74
好的,这里是一个简单的实现,使用C++的map容器来存储单词及其出现次数。需要注意的是,我们需要对单词进行处理,将其转换为小写并去除标点符号。
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <cctype>
using namespace std;
int main() {
string filename;
cout << "Enter filename: ";
cin >> filename;
ifstream infile(filename);
if (!infile) {
cout << "Cannot open file " << filename << endl;
return 1;
}
map<string, int> wordCount;
string word;
while (infile >> word) {
// Convert to lowercase
for (auto& c : word) {
c = tolower(c);
}
// Remove punctuation
word.erase(remove_if(word.begin(), word.end(), ::ispunct), word.end());
// Increment word count
wordCount[word]++;
}
infile.close();
// Print word count
for (auto& pair : wordCount) {
cout << pair.first << " " << pair.second << endl;
}
return 0;
}
```
在上面的代码中,我们首先提示用户输入文件名,并打开该文件。然后,我们使用map容器来存储单词及其出现次数。在循环中,我们读取文件中的每个单词,并对其进行处理,然后将其插入到map容器中。最后,我们遍历map容器,并打印出每个单词及其出现次数。
希望这个例子能够帮助您理解如何使用map容器来统计文件中的单词出现次数。
阅读全文