#include
void main()
{
char string[81];
int i,num=0;
char c;
boolean iskongge=true;//
gets(string);
for(i=0;i
/*单词数加1的条件是上一个字符为空格,并且当前的字符不为空格*/
if(c==' ' || c=='\0' ){
iskongge=true;//标记为空格,
continue;//并且跳到下一次循环读取下一个字符,如果下一个字符为非空格,
}
if(iskongge){num=num+1;iskongge=false;}/*就会施行到这里,单词数加1,如果还是为空格,就不会施行到这里,单词数自然就不会进行加1*/
}
printf("there are %d words in the line .\n",num);
}
我感觉这样要好理解多了!
for(i=0;c=string[i]!='\0';i++)
改成
for(i=0;(c=string[i])!='\0';i++)
少了过();你自己理解
不多说
上网要钱的
#include
void main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ')word=0;
else if(word==0)
{
word=1;
num++;
}
c=string[i]!='\0'有错误. 实际上c从未取string[i]的值.
加括号改成(c=string[i])!='\0'就可以了.
你的c是string[i]!='\0'的值,要么为0要么为1
gets(string);
for(i=0;c=string[i]!='\0';i++)
if(c==' ')word=0;
else if(word==0)