电脑网络

求一串字符中字母数字空格其他的个数哪里不对蟹蟹蟹蟹拜托了

346 浏览

求一串字符中字母数字空格其他的个数 哪里不对  蟹蟹蟹蟹拜托了

1 个回答

韩芹用户头像
韩芹 回答于 2024-07-20
已采纳

提问:求一串字符中字母数字空格其他的个数哪里不对蟹蟹蟹蟹拜托了

#include<stdio.h>int main(){char ch;int m=0,t=0,y=0,z=0;printf("请输入一串字符:");scanf("%s",&ch);while((ch=getchar())!='\n'){if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')m++;else if(ch==' ')t++;else if(ch>='0'&&ch<='9')y++;elsez++;}printf("英文字母的个数是:%d\n空格的个数:%d\n数字的个数是:%d\n其他字符的个数是:%d\n",m,t,y,z);return 0;}

网友回答:

你的程序已经改好了,能正确进行统计了:

修改后的程序如下:

#include<stdio.h>
int main()
{
char ch;
int m=0,t=0,y=0,z=0;
printf("请输入一串字符:");
while((ch=getchar())!='\n')
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
m++;
else if(ch==' ')
t++;
else if(ch>='0'&&ch<='9')
y++;
else
z++;
}
printf("英文字母的个数是:%d\n空格的个数:%d\n数字的个数是:%d\n其他字符的个数是:%d\n",m,t,y,z);
return 0;
}

你可运行验证一下。

程序问题主要是在这一句:scanf("%s",&ch);这里ch是字符变量,不是字符串,要用%c。

但是在while的循环条件中,又有字符的输入ch=getchar(),重复了,会影响正确统计。所以去掉了scanf("%s",&ch);这一句。

我来回答

相关问题