C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开相关的知识,希望对你有一定的参考价值。

#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"

main()



char string[81]; /*定义一个字符型数组*/

int i,num=0,word=0; /*定义几个整型常量,i用来控制循环次数,num表示单词个数,word相当于一个标志*/

char c; /*定义一个字符型变量*/

gets(string); /*获取用户输入的一句话,在这句话的末尾系统会自动添加一个结束标志'\0'*/

for (i=0;(c=string [i] )!='\0';i++) /*从string[0]开始判断,只要它不是结束标志,就执行下面的语句*/

if(c==' ') /*判断当前字符是不是空格,比如I am a boy,第一个I不是空格,所以 就不执行word=0,而执行下一句
判断word是不是等于0(word=0表示把0赋给word,word==0表示判断word等不等于0),显然是的,因为
开始时赋给word的值是0,所以执行语句:“把1赋给word;num++”,此时num为1。再判断第二个,是空格,
所以再把0赋给word。再判断第三个a,不是空格,所以执行else if(word==0),因为刚才把0赋给word了,
所以执行“把1赋给word;num++”,此时num为2,再判断第四个m,不是空格,但此时word为1,所以
else if(word==0)语句不再执行,可以看出word的目的就是防止num重复相加,此后以此类推*/
word=0;

else if(word==0)

word=1; num++;

printf("There are %d words in the line. \n" , num);


不知道我有没有说清楚,我自己看程序的时候就是这样自己按程序走几次,一般都能懂,希望对你有帮助···
参考技术A word是一个标志,它表示现在c=String[i]字符是不是一个单词的结束.
当word==0时表示搜索一个完整单词结束,所以num++,word==1时表示单词的搜索过程
这个程序的作用如下
#include <stdio.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; //如果当前字符为空格符,则表示已搜索完一个完整的单词,修改
//word这个标志位把它变成0
else

if(word==0) //如果word为0表示上一个字是空格,就num++,接着修改word==1
//表示现在是搜索单词的过程
word=1; num++;

printf("There are %d wordS in the line. \n" ,num);

参考技术B 第一,你的头文件写错了,是stdio.h ,细心呀。
第二,‘’是‘ ’,请注意,中间有一个空格,即碰到一个空格word置0,,word置0的作用就是记录什么时候找到了空格,找到以后,再碰到一个单词开始时,num++;所以最终num的值便是出现单词的个数,c语言是可以一步一步细细分析的,你用心分析就会知道这些代码的原理
参考技术C 上楼正解

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

提供一个思路。
首先你需要判断什么样的情况属于单词。
1.两个空格之间的不间断的字母可以看做一个单词。
2.这个字母可以任意长。(只要比句子短就可以)
如果想省事的话,可以设置3个指针:
phead
pword
首先这2个指针都指向句子的首部。
1.遇到第一个空格,且空格后为字母,phead停住,指向这个空格。然后pword继续走。
2.如果pword一直都是遇到字母,则当它的下一个字符为空格或者结束符时,单词数目加1.同时,phead等于pword,继续寻找下边的字符串。
这样一直循环到字符串结束。
参考技术A #include
"stdio.h"
main()

int
i,sum=0,s=0;
char
str[100];
printf("请输入一些字符,之间用空格隔开,然后按回车键:\n");
gets(str);
for(i=0;str[i];i++)

if(str[i]=='
')

if(s)
sum++;
s=0;

else
s=1;

printf("共有单词
:
%d

\n",sum);

以上是关于C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开的主要内容,如果未能解决你的问题,请参考以下文章

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

C语言,输入一行英文字母,统计其中有多少个单词,单词之间用空格分隔.

输入一个字符串,统计其中包含的单词个数,假设单词与单词之间用空格分隔。

c语言中,输入n行字符,统计其中有多少个单词,单词之间用空格分隔开?

c语言以键盘输入一串英文字符串,给各个单词之间以空格分开,统计其中有多少个英文单词(用基础方法做 急