永发信息网

C语言字符统计

答案:5  悬赏:50  手机版
解决时间 2021-01-03 19:16
给出一串字符,要求统计出里面的字母、数字、空格以及其他字符的个数。
字母:A, B, ..., Z、a, b, ..., z组成
数字:0, 1, ..., 9
空格:" "(不包括引号)
剩下的可打印字符全为其他字符。

输入

测试数据有多组。
每组数据为一行(长度不超过100000)。
数据至文件结束(EOF)为止。

输出

每组输入对应一行输出。
包括四个整数a b c d,分别代表字母、数字、空格和其他字符的个数。

样例输入


A0 ,

样例输出


1 1 1 1


我的答案
#include
int main()
{
int a=0,b=0,c=0,d=0;
char e;
while(scanf("%c",&e)!=EOF)
{
if((e>='a'&&e<='z')||(e>='A'&&e<='Z'))
a++;
else if(e>='0'&&e<='9')
b++;
else if(e==' ')
c++;
else
d++;
}
printf("%d %d %d %d\n",a,b,c,d);
return 0;

}
没有输出的,错在哪儿呢???
求指教
最佳答案
#include
#include
int main()
{
int a=0,b=0,c=0,d=0;
char e;
while((e=getch())!=13)
{
printf("%c",e);
if((e>='a'&&e<='z')||(e>='A'&&e<='Z'))
a++;
else if(e>='0'&&e<='9')
b++;
else if(e==' ')
c++;
else
d++;
}
printf("%d %d %d %d\n",a,b,c,d);
return 0;

}
回车结束输入
你的EOF是end of file这是屏幕输入不是从磁盘文件读取,而且scanf只有在回车之后才执行什么的。。。。
全部回答
#include int main() { int a=0,b=0,c=0,d=0; char e; while((e=getchar())!='\n') { if((e>='a'&&e<='z')||(e>='A'&&e<='Z')) a++; else if(e>='0'&&e<='9') b++; else if(e==' ') c++; else d++; } printf("%d %d %d %d\n",a,b,c,d); getch(); } EOF不适合用在这里
while(scanf("%c",&e)!=EOF) 改成while(e=getchar()!=EOF)就有结果了,但是你程序有点问题,就拿例子来说,结果不是预想的那样。
改成while((e=getchar())!=EOF) 输完文件后按 ctrl+z 回车 便可

#include <stdio.h>

void main() { char str[50]; int i,ecnt,ncnt,kcnt,other; i=ecnt=ncnt=kcnt=other=0;

gets(str); while(str[i]) { if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z')) ecnt++; else if(str[i]>='0'&&str[i]<='9') ncnt++; else if(str[i]==' ') kcnt++; else other++; i++; }

printf("字母:%d 数字:%d 空格:%d 其他:%d\n",ecnt,ncnt,kcnt,other);

//直接用汉字了.如果无法输出汉字的话,可以改成英语... }

运行截图:

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
爱民区财政局地址有知道的么?有点事想过去!
公务员分国家和省级考试的么?那么是什么时候
四年春,齐假以诸侯之师侵蔡。蔡溃,遂伐楚。
下面叙述的各种现象中,不属于分子热运动的是
什么叫录取分数线差 10分
单选题Thefootballmatchwasso_______thata
事业单位工作人员被法院判处拘役后开除公职吗
绥芬河市财政局办公位置在哪啊?好找么?
左小祖咒的写歌方式、具体过程是怎样的?
2011年7月8日,中国汽车协会发布最新汽车产销
二手车什么颜色好卖
结构完成面就是图纸给定的尺寸,如果抹灰完成
阳明区财政局地址在什么地方?想过去办事
把水和酒精混合放入零下5度的冰箱会不会有冰
如图,已知AD,AE分别是△ABC的中线和高,且A
推荐资讯
作为沟通沿海经济发达地区与西部资源富集地区
手掌奇痒无比是怎么回事
单选题节日彩灯是由若干只小灯泡串联接到照明
单选题You can’t play with
大广高速每段之间有多少公里?
湘雅交住院费可以微信支付吗
民国25年(1936)十元纸币值钱么
乌兰哈达嘎查社区居委会地址在什么地方?想过
单选题关于通电导体在磁场中受力方向的说法正
OPPO手机来电归属地怎么设置
韩非子⑾·外储说左上阅读答案
沙尘暴是指强风从地面卷起大量沙尘,使大气水
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?