好纠结啊想了半天还是想不通,虽然不甘心,还是来请问
好纠结啊,想了半天还是想不通,虽然不甘心,还是来请教
源码:
运行结果:

------解决方案--------------------
試下這樣
------解决方案--------------------
else if(j=1)
。。。。。。。
------解决方案--------------------
共同学习我写了一个,测试空格并修改字符串指针的代码,共楼主参考
------解决方案--------------------
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 i,j,sum=0;
printf("输入几个单词,以不定数的空格间隔:");
gets(s);
for(i=0,j=1;s[i]!='\0';i++)//j=1计数许可默认开
{
if(s[i]==32)
{
j=1;
//printf("s[%d]=%c,sum=%d,j=%d\n",i,s[i],sum,j);
}
else if(j=1)
{
sum++;
j=0;
//printf("s[%d]=%c,sum=%d,j=%d\n",i,s[i],sum,j);
}
else;
}
printf("单词数是:%d\n",sum);
}
运行结果:
c
求助
帮忙
新手
------解决方案--------------------
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);
}