C代码中一句话的意思?

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:48:50
#include<stdio.h>
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++;
}
printf("there are %d words in this line.\n",num);
}
for (i=0;(c=string[i])!='\0';i++)
if(c==' ') word=0;
else if(word==0) //这句话中word==0什么意思?怎么理解?
{word=1;
num++;
}

这是检索一个字符串中单词个数的程序。
word起到一个num计数“开关”的作用,
0:计数(循环遇到转义字符‘ ’);1:不计数(循环正在某个单词内部)。
以 "abc def ghi jkl" 字符串为例:
注意word的初始值为0;
i=0,执行第一次循环后,word=1,num++,单词个数加1;
第二次循环,虽然有string[1]!=‘ ’,但string[1](即为‘b’)在单词“abc”内部,所以不能计数(num=1);
...
第四次循环,string[3]=‘ ’,word清零,下次循环出现非‘\0’字符,又开始计数。
如是循环下去。

你括号打错位置了吧,WORD是当无单词是为0 NUM是统计单词数目

a 给点分吧 求你了