一个程序有一点看不懂,请给说说。
#include<stdio.h>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 the line.\n",num);
}
就是if语句那里看不懂,不知道这个功能是怎么实现的。
----------------解决方案--------------------------------------------------------
好好看看吧,很简单的程序。。。。
----------------解决方案--------------------------------------------------------
先把字符串给string,然后循环,如果遇到空格word就为0,否则做判断word是否为0,如果word为0,就让word为1,num自加,这段程序是求在字符船内有几个空格,如果把空格换成字母就是求字符串内有几个这种字母
----------------解决方案--------------------------------------------------------
word变量就像布尔型,为零(即遇到空格)表示已经组成一个单词了,如果为1就是正在组一个单词,单词计数!
----------------解决方案--------------------------------------------------------
有问题啊 输出只有一词 请指教
----------------解决方案--------------------------------------------------------
以下是引用sunyuantz在2007-9-13 16:08:08的发言:
先把字符串给string,然后循环,如果遇到空格word就为0,否则做判断word是否为0,如果word为0,就让word为1,num自加,这段程序是求在字符船内有几个空格,如果把空格换成字母就是求字符串内有几个这种字母
“如果word为0,就让word为1”就是里不太懂,是怎么回事呢?
----------------解决方案--------------------------------------------------------
能不能搞点注释在上面呢?
三楼的仁兄,说的有点看不懂了.
----------------解决方案--------------------------------------------------------
回复:(lerysal)以下是引用sunyuantz在2007-9-13 16...
如果当前字符不为空格且word=0,则表示进入一个新的单词,word标记为1 ----------------解决方案--------------------------------------------------------
我运行了,这个程序是错的,大家不要浪费时间.
----------------解决方案--------------------------------------------------------
怎么可能,我运行过n次了,完全正确。不用截图了吧。
----------------解决方案--------------------------------------------------------