c++输入一行字符串,只包含数字,字母和符号,不包括空格和换行符,统计一下只出现了一次的字符有哪些?
时间: 2023-11-07 12:10:36 浏览: 121
可以使用C++中的unordered_map来实现统计只出现一次的字符的操作。具体的实现步骤如下:
```c++
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
string str;
getline(cin, str); // 输入一行字符串
unordered_map<char, int> count_map; // 哈希表,用于统计字符出现的次数
for (char c : str) { // 遍历字符串中的每个字符
count_map[c]++; // 将字符出现的次数加1
}
cout << "只出现一次的字符有:";
for (auto p : count_map) { // 遍历哈希表中的每个键值对
if (p.second == 1) { // 如果字符出现的次数为1
cout << p.first << " "; // 输出该字符
}
}
cout << endl;
return 0;
}
```
上述代码中,使用getline()函数来读取一行字符串,然后使用unordered_map来统计每个字符出现的次数。使用for循环遍历字符串中的每个字符,将字符出现的次数加1。最后再次使用for循环遍历哈希表中的每个键值对,判断字符出现的次数是否为1,如果是则输出该字符。需要注意的是,在哈希表中,键为字符,值为该字符出现的次数。
阅读全文