一 思路:
1:先通过遍历字符串,把大小写字母的个数分别统计到 大写数组和小写数组;
2:遍历大小写数组,%c分别为i+65 i+97,并且两个数组长度为27;
3:两个统计数组用int数组,所以长度不可以越界,否则会乱码错误;
二 代码如下:
#include<stdio.h>
#define N 100
void arr_putout(char a[]); //输入字符串函数
void arr_putin(char a[]); // 输出字符串函数
void stat(char a[],int b[],int s[], int n); //统计字母个数函数
void arr_putin(char a[]){
scanf("%s",a);
}
void arr_putout(char a[]){
printf("%s",a);
puts("");
}
void stat(char a[],int b[],int s[], int n){
int i = 0;
for(int i = 0;i < n;i++){ //统计个数
if('A'<=a[i] && a[i]<='Z'){
b[a[i]-'A'] += 1;
}else if('a'<=a[i] && a[i]<='z'){
s[a[i]-'a'] +=1;
}
}
for(int i = 0;i < 26;i++){ // 遍历输出
printf("大写字母%c:%d次,小写字母%c:%d次\n",i+65,b[i],i+97,s[i]);
//i+65 为 ABCD i+97为 abcd
}
}
int main(int argc, const char *argv[])
{
char one[N] = {0};
int big[N] = {0};
int small[N] = {0};
printf("请输入:\n");
arr_putin(one);
printf("统计的字符串为:\n");
arr_putout(one);
stat(one,big,small,N);
return 0;
}
三 实现结果