c++中的数组问题

C语言输入一行字符统计其中有多少个单词,单词之间用空格分隔开#include<stdio.h>intmain(){charstring[81];inti,num=0,wo... C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开
#include<stdio.h>
int 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);
return 0;
}
这个是答案 可是中间的for循环和if,else if意思没有看懂 求解答
展开
 我来答
hatianxiao
2017-12-20 · TA获得超过2046个赞
知道大有可为答主
回答量:2295
采纳率:77%
帮助的人:1260万
展开全部
应该说程序编写者的习惯并不是很好,我稍微添加了一下花括号后:
for(i=0;(c=string[i])!='\0';i++){//把string[i]值取出来赋值给c,并拿c与'\0'比较,判定是否到了字符串的结尾
if(c==' '){word=0;} //发现单词的分割符号“空格”,将word变量标记为0

else if(word==0){word=1;num++;}//发现新单词的开始,将word变量标记为1,并计数增1,如果c是一个单词的非首字母,则显然不会符合if和else if的条件,故而会什么都不做
}
话说回来那个变量c的存在,其实没有啥意义。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
象晏盘田然
2019-03-17 · TA获得超过4061个赞
知道大有可为答主
回答量:3220
采纳率:34%
帮助的人:199万
展开全部
'\0'是字符串的结束标记啦,如果没有'\0'就没有结束标记,他会无脑输出一些古怪字符的!
int
没有'\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式