运用C语言设计一个算法,统计输入字符串中各个不同字符出现的频度。设字符串中的合法字符为‘A’~‘Z’这26个字母和‘0’~‘9’这10个数字(串的存储结构自行选择)
时间: 2024-05-16 10:12:34 浏览: 70
以下是基于C语言的算法实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char str[MAX_LENGTH];
int freq[36] = {0}; // 使用一个数组来存储各个字符出现的频度,A~Z为0~25,0~9为26~35
printf("请输入一个字符串:");
fgets(str, MAX_LENGTH, stdin);
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = str[i];
if (c >= 'A' && c <= 'Z') {
freq[c - 'A']++;
} else if (c >= '0' && c <= '9') {
freq[c - '0' + 26]++;
}
}
printf("各个字符出现的频度为:\n");
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'A' + i, freq[i]);
}
for (int i = 0; i < 10; i++) {
printf("%c: %d\n", '0' + i, freq[i + 26]);
}
return 0;
}
```
以上代码首先定义了一个长度为100的字符数组`str`用于存储输入的字符串,还定义了一个长度为36的整型数组`freq`用于存储各个字符出现的频度。然后通过`fgets`函数获取用户输入的字符串并计算字符出现的频度,最后输出各个字符出现的频度。
阅读全文