c++ 输入每个物品的拼音,用逗号分开, 判断每个物品出现的次数
时间: 2024-11-03 10:23:19 浏览: 5
在 C++ 中,处理这个问题涉及到输入、字符串操作和计数统计。首先,你需要从用户那里获取输入,然后将输入的字符串分割成单个字符(这里主要是汉字),最后统计每个汉字出现的次数。以下是一个基本的步骤:
1. **输入**:
使用 `cin` 获取用户的输入,例如一个包含多个物品名称的字符串。
```cpp
std::string input;
std::cout << "请输入物品名称,用逗号分隔:";
std::getline(std::cin, input);
```
2. **分割**:
使用 `stringstream` 和 `std::getline` 分割字符串。然后遍历每个汉字,可以使用 `std::wstring_convert` 将汉字转为宽字符串,方便后续处理。
```cpp
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::vector<wchar_t> words;
std::istringstream iss(input);
std::string word;
while (iss >> word) {
words.push_back(converter.from_bytes(word));
}
```
3. **统计**:
创建一个关联容器(如 `std::map` 或 `unordered_map`)来存储每个汉字及其出现次数。
```cpp
std::map<wchar_t, int> frequency;
for (auto& w : words) {
++frequency[w];
}
```
4. **输出**:
最后遍历 `frequency`,打印每个汉字及其出现次数。
```cpp
for (const auto& [char, count] : frequency) {
std::wcout << L'"' << char << L'", 出现 ' << count << L' 次' << std::endl;
}
```
阅读全文