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意思没有看懂 求解答 展开
#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意思没有看懂 求解答 展开
2个回答
展开全部
应该说程序编写者的习惯并不是很好,我稍微添加了一下花括号后:
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的存在,其实没有啥意义。
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的存在,其实没有啥意义。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询