用c语言写一个算法,统计在输入字符串中各个不同字符出现的频度,字符串中的合法字符为a~z和0~9。
时间: 2023-11-06 21:18:27 浏览: 112
以下是使用C语言编写的算法,可以统计输入字符串中各个不同字符出现的频度,字符串中的合法字符为a~z和0~9。
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 128
int main() {
char str[MAX_SIZE];
int freq[36] = {0}; // 26个字母和10个数字,共36个合法字符
int len, i;
printf("请输入一个字符串:\n");
fgets(str, MAX_SIZE, stdin);
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
freq[str[i] - 'a']++; // 统计字母出现次数
} else if (str[i] >= '0' && str[i] <= '9') {
freq[26 + str[i] - '0']++; // 统计数字出现次数
}
}
printf("字符频度如下:\n");
for (i = 0; i < 26; i++) {
printf("%c:%d次\n", 'a' + i, freq[i]);
}
for (i = 0; i < 10; i++) {
printf("%d:%d次\n", i, freq[26 + i]);
}
return 0;
}
```
该算法使用了一个长度为36的数组来保存每个字符出现的频度,其中前26个元素分别对应字母a~z,后10个元素分别对应数字0~9。使用一个循环遍历输入字符串中的每个字符,如果该字符是合法字符,则根据其ASCII码值在数组中对应位置的元素加1。最后输出每个字符出现的频度即可。
阅读全文