好纠结啊,想了半天还是想不通,虽然不甘心,还是来请教
源码:
[解决办法]
for(i=0,j=0;s[i]!='\0';i++)//j=1计数许可默认开
{
if(j==0 && s[i]!=' ')
{
sum++;
j=1;
continue;
}
else if(j=1 && s[i]==' ')
{
j=0;
}
}
下
[解决办法]
else?if(j=1)
。。。。。。。
[解决办法]
共同学习我写了一个,测试空格并修改字符串指针的代码,共楼主参考
bool isblank(char **data)
{
char *temp =*data;
if(*data ==NULL)
{
return false;
}
while(*temp =='\b' && *temp!='\0')
{
temp++;
if(*temp!='\b')
break;
}
if(*temp=='\0')
{
return false;
}
*data = temp;
return true;
}
[解决办法]
else if (j=1)错了。
给楼主个建议,写判断的时候尽量调换顺序
写成else if (1 == j)
[解决办法]
else if(j=1)这里应该为else if(j==1),楼主应该注意=与==的区别
[解决办法]
楼上正解,楼主这是习惯问题,以后错了几次慢慢就改过来了
[解决办法]
默认fscanf/scanf + %s就可以读出以空格分隔的单词
#include<stdio.h>
int main(void)
{
char s[100];
int sum = 0;
printf("输入几个单词,以不定数的空格间隔:");
while(1 == fscanf("%99s", s))
{
++sum;
}
printf("单词数是:%d\n",sum);
}