2 qq 33231985 qq_33231985 于 2016.04.12 00:56 提问

计算输入字符串的空格数有错,希望大神不吝赐教

#include
int main()
{
int i,t=0;
char a[100];
printf("please enter 字母:\n");
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='32') //32是空格的ascall码
t++;
}
printf("空格个数为:%d\n",t);
return 0;
}

2个回答

NK_test
NK_test   Rxr 2016.04.12 01:06
已采纳

既然是用ascii码判断,直接判断a[i]==32就好了。或者使用a[i]==' '这种方式

qq_33231985
qq_33231985 谢谢咯
一年多之前 回复
caozhy
caozhy 正解
一年多之前 回复
msdnwolaile
msdnwolaile   2016.04.12 03:14

嗯嗯,我觉得应该帮楼主指出错误,返回空格数不对的原因是因为:32已经是‘ ’(空格)字符的ascii码了,没有必要再加‘’了,
加了之后就直接变成了另一个值了,所以当然判断出错误的结果了
所以程序应该这样写:if(a[i]==‘ ’)

msdnwolaile
msdnwolaile 不好意思,程序应该写成:if(a[i]==‘ ’) 或者 if(a[i]== 36),因为a[i]已经为char了,
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!