C语言输入一串字符(可包含空格),统计各字母出现的次数(不区分大小写)?

输入一串字符(可包含空格),统计各字母出现的次数(不区分大小写)、总字母数,以及各数字出现的次数、总数字数。利用指针实现对字符的访问。

#include<stdio.h>

int main(){

int sa=0,si=0,suma=0,sum0=0;

int a[91]={0};

char st[10000];

char *s=st;

gets(s);

while(*s){

if(*s>96&&*s<123){

*s-=32;

suma++;

}

if(*s>47&&*s<58){

sum0++;

}

a[*s]++;

s++;

}

printf("总字母数:%d\n",suma);

printf("总数字数:%d\n",sum0);

for(int i=65;i<91;i++)

if(a[i])printf(" %c 的个数:%d\n",i,a[i]);

for(int i=48;i<58;i++)

if(a[i])printf(" %c 的个数:%d\n",i,a[i]);

}

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-25
#include<stdio.h>
void main() { char s[256],*p; int n,a[26],b[10],aa,bb,i;
gets(s); for ( i=0;i<10;i++ ) b[i]=0; for ( i=0;i<26;i++ ) a[i]=0; i=aa=bb=0; p=s;
while ( *p!=0 ) {
if ( *p>='0' && *p<='9' ) { b[*p-'0']++; bb++; }

else if ( *p>='a' && *p<='z' ) { aa++; a[*p-'a']++; }
else if ( *p>='A' && *p<='Z' ) { aa++; a[*p-'A']++; }
p++;
}
printf("总字母数%d\n",aa); for ( i=0;i<26;i++ ) printf("%c[%d] ",'A'+i,a[i]); printf("\n");
printf("总数字数%d\n",bb); for ( i=0;i<10;i++ ) printf("%d[%d] ",i,b[i]); printf("\n");
}本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网