C语言:输入一行字符,分别统计出其中的大写英文字母、小写英文字母、数字和其他字符的个数

在C++6.0里编译提示总是出错,请高手指教一下到底错在那里了,谢了#include<stdio.h>#defineN100main(){charall[N];inti,... 在C++6.0里编译提示总是出错,请高手指教一下到底错在那里了,谢了
#include <stdio.h>
#define N 100
main()
{
char all[N];
int i,xx=0,shuzi=0,qita=0,dx=0;
printf("请输入一个字符串(不超过100个):");
gets(all);
for(i=0;all[i];i++)
{
if(all[i]>'a'&&all[i]<'z'||all[i]>'A'&&all[i]<'Z')
if(all[i]>='A'&&all[i]<='Z')
dx++;
else
xx++;
else

if(all[i]>'0'&&all[i]<'9')
shuzi++;
else
qita++;
}
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
}
展开
 我来答
go12355
2011-04-18 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:26.6万
展开全部
语法错误:
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
dx后面的逗号不是英文的。算法也有错误:你判断的时候if(all[i]>'a'&&all[i]<'z'||all[i]>'A'&&all[i]<'Z')
应该把>都改成>=,<也一样,不改的话a、A、z、Z的判断将被划在其他类里,数字的判断也应该是大于等于,小于等于,改完后代码为:
#include <stdio.h>
#define N 100
main()
{
char all[N];
int i,xx=0,shuzi=0,qita=0,dx=0;
printf("请输入一个字符串(不超过100个):");
gets(all);
for(i=0;all[i];i++)
{
if(all[i]>='a'&&all[i]<='z'||all[i]>='A'&&all[i]<='Z')
if(all[i]>='A'&&all[i]<='Z')
dx++;
else
xx++;
else
if(all[i]>='0'&&all[i]<='9')
shuzi++;
else
qita++;
}
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
}
翥甾天下
2011-04-18 · TA获得超过177个赞
知道答主
回答量:69
采纳率:0%
帮助的人:21万
展开全部
把gets(all);这句改成
char c;
int i=0;
while((c=getchar())!='\n')
{
if(i<N) all[i++]=c;
}
这样应该就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式