输入若干的字符串,每个字符串中只包含数字字符和大小写英文字母,统计字符串中有出现的不同字符的出现次数。 输入格式: 测试数据有多组,处理到文件尾。每组测试输入一个字符串(不超过80个字符)。 输出格式: 对于每组测试,按字符串中有出现的字符的ASCII码升序逐行输出不同的字符及其个数(两个数据之间留一个空格),每两组测试数据之间留一空行,输出格式参照输出样例。用c++写
时间: 2024-02-23 09:00:49 浏览: 90
可以使用字符数组和哈希表来实现统计不同字符的出现次数。具体实现如下:
```c++
#include <iostream>
#include <cstring>
#include <unordered_map>
using namespace std;
int main() {
char str[81];
while (cin >> str) {
unordered_map<char, int> cnt; // 定义哈希表
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isalnum(str[i])) { // 判断是否为数字或字母
cnt[str[i]]++; // 统计出现次数
}
}
for (char c = '0'; c <= 'z'; c++) { // 输出不同字符及其个数
if (cnt[c] > 0) {
cout << c << ' ' << cnt[c] << endl;
}
}
cout << endl; // 输出空行
}
return 0;
}
```
其中,isalnum() 函数用于判断字符是否为数字或字母。unordered_map<char, int> 表示一个以字符为键,以出现次数为值的哈希表。由于题目要求输出 ASCII 码升序的字符及其个数,所以用一个循环遍历输出即可。
阅读全文