int zm=0,sz=0,qt=0;
char c;
c=getchar();
while(c!='\n')
{
if(c>='0 '&& c <='9')
sz++;
else if((c>='A' && c<='Z') || (c>='a' && c<='z'))
zm++;
else
qt++;
c=getchar();
}
printf("%d %d %d\n",sz,zm,qt);
system("pause");
c=getchar();
getchar每执行一次获取一个字符,所以得放在循环里
while(c!='\n')
{
...
c=getchar();
}
也可以放在循环条件上
while((c = getchar()) !='\n')
{
...
}
你想得到什么结果,你问之前,自己调试你的程序了吗
另外'\0'也多了一个空格
'0'写错了吧。..........
循环中间的getchar换成
scanf(%c, &c);
if(c>='0 '&& c <='9')
这句,'0 '多了一个空格!删掉之后就好了。
int zm=0,sz=0,qt=0;
char c;
scanf("%s",&c);
while(c!='\n')
{
if(c>='0'&& c <='9')
{
sz++;
} //加上括号为个人习惯
else
if((c>='A' && c<='Z') || (c>='a' && c<='z'))
{
zm++;
}
else
qt++;
getchar();
}
printf("%d %d %d\n",sz,zm,qt);
system("pause");