输入一行字符,统计其中有多少个单词,单词之间用空格隔开!高手进来解释下。

输入一行字符,统计其中有多少个单词,单词之间用空格隔开。
#include<stdio.h>
void main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)\\此处for循环和下面的if和else if语句是按什么顺序执行
的,程序又是怎么判断第一个单词和单词之间有很多空格
的。。。
if(c=='')word=0;
else if(word=0)
{
word=1;
num++;
}
printf("There are %d words in the line.\n",num);
}

#include<stdio.h>
void main()
{
char string[81]; //定义长度为81
int i,num=0,word=0;
char c;
gets(string); //输入字符串
for(i=0;(string[i])!='\0';i++)//直到字符串的末尾
{
if(string[i]==' ')
word=0; //如果为空格 那么将知道有单词
else if(word==0) //二重判断直到不为空格
{
word=1; //word状态置为1
num++; //累加单词
}
}
printf("There are %d words in the line.\n",num); //输出有几个单词
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-25
字符数组string gets(string)就不用解释了。进入FOR循环,c=string[i]!='\0' 直到字符串结束符 退出循环。循环体:如果c==' ' word=0 说明单词没开始, else word=1;num++;单词开始统计;这里的word理解为开关变量;用c==' '控制是否有单词出现;希望回答你满意;
第2个回答  2018-03-22
第一个字母怎么算!
第3个回答  2015-04-07
你倒数第七排的else if语句后面,等号少写了一个

输入一行字符,统计其中有多少个单词,单词之间用空格隔开!高手进来解释...
void main(){ char string[81]; \/\/定义长度为81 int i,num=0,word=0;char c;gets(string); \/\/输入字符串 for(i=0;(string[i])!='\\0';i++)\/\/直到字符串的末尾 { if(string[i]==' ')word=0; \/\/如果为空格 那么将知道有单词 else if(word==0) \/\/二重判断直...

输入一行字符,统计其中有多少个单词,单词之间用空格隔开。
第一次循环word=0,执行else num++,判断出I 是一个单词

C语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
输入一行字符,统计其中的单词数量,以空格分隔单词。实现步骤如下:首先,包含头文件 stdio.h,以便使用输入输出函数。创建主函数 main(),用于实现程序逻辑。定义字符数组 a[100],存储输入的字符串。数组长度为100,以适应大多数情况。定义整型变量 i 和 s=0,分别用于遍历数组和计数单词数量。使用 p...

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
单词数目可由空格出现次数决定(连续若干空格作为出现一次空格;一行开头的空格不统计在内).如果测出某一个字符为非空格,而其前面的字符是空格,则表示"新单词开始",此时单词数num累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍是原来的单词的继续,num不累加 ...

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
include<bits\/stdc++.h> usingnamespacestd;intmain(){ chara;ints=1;scanf("%c",&a);while(a!='.'){ if(a==''||a==',')s++;scanf("%c",&a);} cout<

C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开
#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;} ...

.输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
应该用gets(string)include<stdio.h>int main(){char string[100]; int i,c,num=0; char b;printf("请输入一段英文,每个单词空格隔开:\\n"); gets(string);if(string[0]!=' ') num=1; for (i=1;string[i]!='\\0';i++){b=string[i];if(string[i-1]==' ' && b!=...

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
出错的地方: 1, for(int i=0;a!='\\0';i++); \/\/ 此处应该删除; 2, for(int i=0;i<100\/*a!='\\0'*\/;i++) \/\/修改循环终止条件 3, if(a==' ') 修改为 if(a[i]==' ')结构应该为3吧

输入一行字符,统计其中包括多少单词,单词之间用空格分隔
include <stdio.h> void main() { char s[200];int n=m=0;scanf("%s",s);while(s[m]) if(s[m++]==' ') n++;printf("Total words : %d\\n",(!s[0] || s[0]==' ' || s[m-1]==' ')?n:n+1);} 有点牛逼哦,考虑了零单词、首字符为空、末字符为空的情形哦。

输入一行字符,统计其中有多少个字符,单词之间用空格隔开,说出最长单词...
这是两个功能了,第一个统计字符数,可以调用string.trim()去除空格后再转换成char[]统计其长度。第二个获取单词,使用string.split(" ")以空格为分隔符把字符串分成string[]那么每一个都是一个单词,然后计算每一个string的长度就行了,过去长度最长的那个并输出 ...

相似回答