编写一个程序用于计算在它的输入中每个不同的单词所出现的次数 c++
时间: 2024-09-25 13:04:38 浏览: 32
在C++中编写一个程序来计算输入文本中每个不同单词出现的次数,可以使用`std::map`来存储计数,因为`map`的数据结构允许我们通过键(在这里是单词)快速查找并更新值(出现次数)。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <sstream>
#include <map>
// 函数来分割字符串并去除标点符号
std::vector<std::string> split_string(const std::string &s) {
std::istringstream iss(s);
std::vector<std::string> tokens;
std::string token;
while (iss >> token) {
// 使用正则表达式移除标点符号
tokens.push_back(token.erase(std::remove_if(token.begin(), token.end(), ispunct), token.end()));
}
return tokens;
}
int main() {
std::string input;
std::cout << "请输入一段文字:";
getline(std::cin, input);
// 分割字符串并统计词频
std::map<std::string, int> word_count;
for (const auto &word : split_string(input)) {
++word_count[word];
}
// 输出结果
for (const auto &pair : word_count) {
std::cout << "单词 \"" << pair.first << "\" 出现了 " << pair.second << " 次。\n";
}
return 0;
}
```
在这个程序中,首先读取用户的输入,然后使用`split_string`函数将输入分割成单词,并使用`std::map`来跟踪每个单词的频率。最后,遍历`word_count` map,打印出每个单词及其对应的出现次数。
阅读全文