注册 登录
编程论坛 C语言论坛

这次是字符型数据char的使用和统计

三脚猫a 发布于 2019-03-16 11:51, 1661 次点击
代码如下,要求输入一串字符,统计空格,英文字母,数字,其他字符的个数。各位帮我看看哪里有问题了,依然没报错。
程序代码:
#include <stdio.h>
int main ()
{int a=0,b=0,c=0,d=0;
char x;
printf("请输入一串字符并按回车键结束:\n");
//scanf("%c",&x);
x=getchar();
while((x=getchar())!='\n')
{if (x=32)
  b+=1;
  else if ((x>=65&&x<=90)||(x>=97&&x<=122))
  a+=1;
  else if (x>=48&&x<=57)
  c+=1;
  else
  d+=1;

 }
printf("输入的英文字母,空格,数字,其他字符个数分别为:%d,%d,%d,%d",a,b,c,d);
return 0;
}
10 回复
#2
三脚猫a2019-03-16 12:02
哈哈哈,还有帮忙看看的呗
#3
三脚猫a2019-03-16 12:34
这道题涉及ASC码了,谁来帮忙看看呗,还有那个if函数的条件可以有||和&&吧?
#4
豆豆的滴2019-03-16 14:05
这输入了多个字符么
还有if里面为啥能赋值
#5
三脚猫a2019-03-16 19:38
回复 4楼 豆豆的滴
对呀,就是要输入一串字符,然后让这个程序来统计我输入了多少个字母、数字、空格、其他字符。所以我很无奈呢。然后就是你说的if里面的语句,其实我也不懂,因为刚学嘛。您能看看怎么改吗?
#6
吹水佬2019-03-17 04:49
//if (x=32)
if (x==32)
#7
三脚猫a2019-03-17 13:43
回复 6楼 吹水佬
谢谢,作用很大。但是我发现英文字母的个数老是会少1。也就是说假如我输入11个英文字母,统计下来只有十个,输入九个英文字母统计下来只有八个。。。
#8
吹水佬2019-03-17 15:17
去掉x=getchar();这句试试
#9
forever742019-03-18 15:41
为什么要把第一个字符拿过去扔掉呢?

这是“经典”教材上那群猴子的作风啊,先藏起一个再处理剩下的。
这样不符合核心价值观啊喵
#10
三脚猫a2019-03-18 22:06
回复 8楼 吹水佬
哇,这次可以了,不多不少刚刚好。为啥这句话会影响结果呢,如何产生影响的呢。
#11
三脚猫a2019-03-18 22:07
回复 9楼 forever74
没听懂,请问啥意思哦。。。。
1