输入一串由英文和空格组成的句子,可能出现一个或多个空格,不区分大小写。
(1)输出该句子中字母的个数。
(2)输出该句子中单词的个数。
(3)输出该句子中出现次数最多的字符和次数。
例如:“thiS IS my love”
输出:字母个数12 ,单词个数4,最多的字符i s 次数为2
#include <stdio.h>
#include <string.h>
int main(){
char ch[1000];
int z[27]={0};//用来记入每一个字母出现的次数
int i,tmp,maxindex=0,maxnum=0,charcount=0,count=0;//maxnum出现最多字母的次数,charcount字母的个数 ,count单词的个数
gets(ch);//scanf("%s",ch)接受输入会过滤掉空格
// puts(ch);
int len = strlen(ch),flag=0;//flag用于标记,有助于判断单词个数
for(i=0;i<len;i++){
if(ch[i]>='a'&&ch[i]<='z'){
flag=1;
charcount++;//字母个数加一
tmp = ch[i]-'a';
z[tmp]++;
if(maxnum<z[tmp]){//判断出现次数最多的字符
maxnum = z[tmp];
maxindex = tmp;
}
}
if(ch[i]>='A'&&ch[i]<='Z'){
flag=1;
charcount++;//字母个数加一
tmp = ch[i]-'A';
z[tmp]++;
if(maxnum<z[tmp]){//判断出现次数最多的字符
maxnum = z[tmp];
maxindex = tmp;
}
}
if(flag==1&&ch[i]==' '){
count++;
flag=0 ;
}
}
if(flag=1&&i>=len){//如果最后一个单词后没有空格
count++;
flag=0 ;
}
printf("字母个数%d\n",charcount);
printf("单词个数%d\n",count);
for(i=0;i<26;i++){ //有可能出现最多次数的字符有多个。
if(z[i]==maxnum)
printf("出现最多次数的字母%c\n",i+'a');
}
printf("出现最多次数的字母的次数%d\n",maxnum);
return 0;
}