采用C++写一个算法,统计在输入字符串中各个不同字符出现的频度,字符串中的合法字符为a~z和0~9
时间: 2023-11-06 20:03:09 浏览: 115
统计字符串中字母和数字个数
以下是采用 C++ 编写的算法,实现统计输入字符串中各个不同字符出现的频度:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 36; // 字符种类数
int cnt[MAXN]; // 记录每种字符出现的次数
int main()
{
char str[1000];
cin >> str;
int len = strlen(str);
for (int i = 0; i < len; i++)
{
if (isdigit(str[i])) // 判断是否为数字
{
cnt[str[i] - '0']++;
}
else if (isalpha(str[i])) // 判断是否为字母
{
if (isupper(str[i])) // 大写字母转为小写字母
str[i] = tolower(str[i]);
cnt[str[i] - 'a' + 10]++;
}
}
for (int i = 0; i < 10; i++) // 输出数字的频度
{
cout << i << " " << cnt[i] << endl;
}
for (int i = 0; i < 26; i++) // 输出字母的频度
{
cout << char('a' + i) << " " << cnt[i + 10] << endl;
}
return 0;
}
```
该算法的基本思路是:遍历输入字符串,判断字符是否为数字或字母,并统计每个字符出现的次数。最后,输出数字和字母的频度。其中,数字的频度存储在数组 cnt 的前 10 个元素中,字母的频度存储在数组 cnt 的后 26 个元素中。如果输入字符串中有大写字母,需要将其转换为小写字母,然后再统计出现次数。
阅读全文