#include <Studio.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);
}
运行情况如下:
I am a boy.
There are 4 words in the line.
就是这里的if(c=='') word=0;
else
if(word==0)
{ word=1; num++; }
看不懂啊 开头如果c==‘’就说明出现单词word=0是表示未出现单词 但是下面word==0了 是怎么回事啊 还有这个循环是怎么循环的哦 麻烦详细点 详细 详细 详细 详细 谢谢 我是菜鸟 很笨。问题补充:
还有就是word==0为什么是表示输入得是前一个字符为空格 关键就在这里啊 一定要详细点 谢谢 谢谢 谢谢 谢谢 一楼的我看不很明白 不够详细 关键点要说清楚啊 麻烦各位了啊
#include<stdio.h>
int main()
{
intword,num=0;
char ch;
while((ch=getchar())!='\n')
{
if(ch=='')
word=0;
else
{
if(word==0)
{
num++;
word=1;
}
}
}
printf("%d",num);
return0;
}
分析
若当前字符=空格
YESﻩ未出现新单词,使word=0,num不累加
NOﻩ前一字符为空格(word=0),新单词出现,使num加1,word=1
前一字符为非空格(word=1),未出现新单词,num不加1*/
其它方法:
#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;
elseif(word==0)
{
word=1;
num++;
}
printf("thereare%dwordsinthisline.\n",num);
return0;
}