C语言给定一个由英文字母组成的字符串,计算每个字母出现的次数,不能使用if
时间: 2024-12-08 22:18:09 浏览: 14
在C语言中,如果你想要统计一个只包含英文字母的字符串中每个字母出现的次数,而不使用if语句,你可以利用ASCII码来实现。ASCII码可以将字符映射到整数上,通过位操作来进行计数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h>
void count_letters(char *str) {
int counts[26] = {0}; // 初始化一个大小为26的数组存储字母计数
int index;
while (*str != '\0') { // 遍历字符串直到遇到结束符
char c = tolower(*str); // 转换为小写字母,以便统一计数
index = c - 'a'; // 计算当前字符对应的数组索引
counts[index]++;
str++; // 移动指针到下一个字符
}
for (int i = 0; i < 26; i++) {
if (counts[i] > 0) {
printf("字母 '%c' 出现了 %d 次\n", 'a' + i, counts[i]);
}
}
}
int main() {
char str[] = "Hello, World!";
count_letters(str);
return 0;
}
```
这个程序会遍历输入的字符串,并根据字符在ASCII表中小写字母的顺序累加计数。最后,它打印出每个字母及其出现次数。
阅读全文