编写一个c语言程序要求统计输入字符串中各个字母使用频率
时间: 2023-11-20 10:23:32 浏览: 128
好的,这是一个简单的统计字母频率的C语言程序:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[26] = {0}; // 初始化频率数组为0
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin); // 从标准输入读取字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断字符是否为字母
freq[tolower(str[i]) - 'a']++; // 统计字母频率
}
}
printf("字母频率如下:\n");
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'a' + i, freq[i]); // 输出字母频率
}
return 0;
}
```
程序中使用了一个大小为26的整型数组 `freq` 来统计每个字母的频率,数组下标为字母在字母表中的位置,即 `'a'` 对应下标0,`'b'` 对应下标1,以此类推。程序通过循环遍历输入的字符串,如果当前字符是字母,则将对应的频率数组元素加1。最后输出每个字母的频率。
相关问题
c语言统计输入字符串中各个字母使用频率 编写一个程序,统计输入一行字符串中各个字母使用频率(大小写不区分),将次数不为零的字母及次数按照字母ASCII码从小到大输出。
以下是C语言统计输入字符串中各个字母使用频率的程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[26] = {0}; // 用于记录每个字母出现的次数,初始化为0
int len, i;
printf("请输入一个字符串:");
fgets(str, MAX_LEN, 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] >= 'A' && str[i] <= 'Z') {
freq[str[i] - 'A']++; // 大写字母
}
}
printf("各个字母出现的频率为:\n");
for (i = 0; i < 26; i++) {
if (freq[i] != 0) {
printf("%c: %d\n", i + 'a', freq[i]); // 输出字母及其出现次数
}
}
return 0;
}
```
c语言编写一个程序,统计输入一行字符串中各个字母使用频率(大小写不区分),将次数不为零的字母及次数输出。
以下是一个示例程序,可以实现输入一行字符串并统计各个字母的使用频率:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[26] = {0}; // 初始化每个字母频率为0
printf("请输入一行字符串:\n");
fgets(str, MAX_LEN, stdin); // 读入一行字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 只处理字母
freq[tolower(str[i]) - 'a']++; // 忽略大小写,更新对应字母的频率
}
}
printf("各个字母的使用频率如下:\n");
for (int i = 0; i < 26; i++) {
if (freq[i] != 0) { // 只输出次数不为零的字母
printf("%c: %d\n", 'a' + i, freq[i]);
}
}
return 0;
}
```
该程序使用了一个长度为26的数组 `freq` 来记录每个字母的出现次数,通过遍历输入的字符串并忽略大小写来更新数组中对应字母的频率。最后再遍历数组输出次数不为零的字母及其出现次数。
阅读全文