C语言,如果理解代码中的WORD==0

Skyhoo 2009-02-13 01:58:55
#include "stdio.h"
void main()
{
char str[81];
int i,num=0,word=0;
char c;
gets(str);
for(i=0;(c=str[i])!='\0';i++)
if(c == ' ') word=0;
else if(word == 0)
{
word=1;
num++;
}
printf("there are %d words in the line",num);

}

如何理解 WORD==0
...全文
372 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
OenAuth.Core 2009-02-13
  • 打赏
  • 举报
回复
它的基本思想就是统计单词的第一个字母,其实你可以看成下面这个样子:

for(i=0;(c=str[i])!='\0';i++)
if(c == ' ') word=0; //如果是空格,用word标识一下
else if(word == 0)  //如果是空格的下一个字母,也就是单词的第一个字母
{
word=1;
num++; //单词数加一
}
else
{
//如果是单词第二个字母及以后的,就什么也不干
}

Skyhoo 2009-02-13
  • 打赏
  • 举报
回复
谢谢各位啦,小弟明白了 呵呵
OenAuth.Core 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baihacker 的回复:]
word=0表示当前解析字符的不在单词内
word=1表示当前解析字符的在单词内
[/Quote]

飞雪不是已经说了吗?

void main()
{
char str[81];
int i,num=0,word=0;
char c;
gets(str);
for(i=0;(c=str[i])!='\0';i++)
if(c == ' ') word=0; //如果是空格,用word标识一下
else if(word == 0)  //如果是空格的下一个字母
{
word=1;
num++;
}
printf("there are %d words in the line",num);

}


custyandong 2009-02-13
  • 打赏
  • 举报
回复
word==0中的“==”号表示关系运算符恒等的意思,其实判断的是当前word里的值是不是0,若是0说明前一个字符是空格,才使得word当前值为0
a_rockboy 2009-02-13
  • 打赏
  • 举报
回复
如果在单词内,单词数加1,然后找单词后的空格,再置word=0;
baihacker 2009-02-13
  • 打赏
  • 举报
回复
如果前一个状态是在单词外,而当前读入的字符不是一个空格,那么单词数加1,并且标记,已经进行单词内了.
waizqfor 2009-02-13
  • 打赏
  • 举报
回复
if(word == 0)//用来判断 是不是在字符的there are words in the line 行内
如果word==0 证明在空格 例如 if(c == ' ') word=0;
如果word==1 证明在字符行里 word=1; num++;


Skyhoo 2009-02-13
  • 打赏
  • 举报
回复
那这句 怎么理解

else if(word == 0)
{
word=1;
num++;
}
baihacker 2009-02-13
  • 打赏
  • 举报
回复
word=0表示当前解析字符的不在单词内
word=1表示当前解析字符的在单词内

70,012

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧