难度:两颗星
1.两个函数:
(1)isalpha函数:
判断字符ch是否为英文字母,若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。头文件是ctype.h。
(2)tolower函数:
把字母字符转换成小写,非字母字符不做出处理。头文件是ctype.h。
2.题目:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计其出现的次数。
思路:共有26个字母,所以要建立一个数组,用来存放每个字母的个数。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char *s)
{ int k[26]={0},n,i,max=0; char ch;
while(*s)
{ if( isalpha(*s) ) {
ch=tolower(*s);
n=ch-'a';//获取字母在数组k中的下标
k[n]+= 1 ;//字母所对应的值加1
}
s++;
if(max<k[n]) max= k[n] ;
}
printf("\nAfter count :\n");
for(i=0; i<26;i++)
if (k[i]==max) printf("\nletter \'%c\' : %d times\n",i+'a',k[i]);
}
void main()
{ char s[81];
printf("\nEnter a string:\n\n"); gets(s);
fun(s);
}