字符串
第3题
【描述】
输入一个字符串,统计并输出该字符串中26个英文字母(不区分大小写)出现的次数。
【输入】
输入一个字符串。
【输出】
分行输出26个英文字母(不区分大小写)出现的次数。
【输入示例】
I am a student.
【输出示例】
a:2
d:1
e:1
i:1
m:1
n:1
s:1
t:2
u:1
【来源】
《程序设计基础——以C为例》第6章上机实验题11。
#include<stdio.h>
#include<string.h>
int main(){
char a[100]={0},num[150]={0};
int i,l;
char ch='a';
gets(a);
l=strlen(a);
for(i=0;i<l;i++){
if(a[i]<='Z'&&a[i]>='A')
a[i]=a[i]+32;
num[a[i]]++; //这里的算法有所创新,基本思路是:
//先把a[i]变成一个字母,而字母有整数值,再把这个整数值作为num[]中的下标,统计出各个字母数量
}
for(ch='a';ch<='z';ch++){ //字母间可以比较大小,同样也可以通过++来移位
if(num[ch]!=0)
printf("%c:%d\n",ch,num[ch]);
}
}
//收获:字母就是整数,可以进行整数的加减运算和判断
//即,字母只不过是整数的%c的格式输出罢了,本质就是整数!