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

作者&投稿:甘胡 (若有异议请与网页底部的电邮联系)
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;


扩展资料:分析
若当前字符=空格
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;

#include void main() { char str[100]; int num=0; int i=0; gets(str); while(str[i] != '\0') { while(str[i] == ' ') { i++; } if(str[i] == '\0') break; else num++; while(str[i] != ' '&&str[i] != '\0') { i++; } } printf("%d
",num); }

#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);

}
不知道我有没有说清楚,我自己看程序的时候就是这样自己按程序走几次,一般都能懂,希望对你有帮助···

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

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);

}

上楼正解


汉阳区17133184814: C语言题目: 输入一行字符,统计其中有多少个单词 -
源左派维: 原发布者:学海无涯灯为伴 C语言程序设计教程(中国铁道出版社)习题4第7题:输入一行字符,统计其中单词的个数(单词之间可能有多个空格).#includeintmain(){intcount=0,word=0;charch;printf("输入一行字符:");while((ch=getchar())!='\n')if(ch=='')word=0;elseif(word==0){word=1;count++;}printf("总共有%d个单词\n",count);return0;}

汉阳区17133184814: 在C语言里怎样输入一行字符,统计其中有多少个单词 -
源左派维: #includevoid main() { int i,n,sum=0; char a[100];//根据字串的长度适当调整 printf("请输入一组字符:"); gets(a); n=strlen(a); for(i=0;i<=n-2;i++) { if((65<=a[i]&&a[i]<=90)||(97<=a[i]&&a[i]<=122)) sum++; } printf("字符的个数为:%d\n",sum); } 经过在vc++6.0上调试,没有问题,不知道是不是你想要的这种

汉阳区17133184814: c语言怎么统计出一行字符的个数 -
源左派维: C语言字符串的学习,输入指定字符串,并且计算字符串的位数

汉阳区17133184814: C语言编程;输入一行字符,统计其中英文字母,数字及其他字符个数 -
源左派维: #include<stdio.h> #include<string.h> void main() {char str[20];int num=0,letter=0,other=0;int i=0;scanf("%s",str);for(i=0; i<strlen(str); i++){if(str[i]>='0'&&str[i]<='9') num++;else if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') letter++;else ...

汉阳区17133184814: C语言 输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果 -
源左派维: ||#include "stdio.h" void main() {char s;int i=0,j=0,k=0,m=0,da=0,xiao=0;printf("please input the string\n");while((s=getchar())!='\n') /*循环从键盘读入字符直到一行结束(输入回车)*/{if((s='a')||(s'A')) {if(s='A')da++;if(s='a')xiao++;i++; ...

汉阳区17133184814: 用C语言编程:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数. -
源左派维: #include <stdio.h> void main() {char line[30];int i,count1=0,count2=0,count3=0,count4=0;printf("\n请输入一行字符: ");gets(line);i=0;while(line[i]!='\0'){if(((line[i]>=97) && (line[i]<=122))||((line[i]>=65) && (line[i]<=90))){count1++;}...

汉阳区17133184814: c语言编程,键盘输入一行字符,统计其中字母,空格,数字和其他字符的个数,并输出 -
源左派维: #include int main() { int numCnt=0,charCnt=0,spaceCnt=0,albCnt=0; char c; while ((c=getchar()) != '\n') { if (c = '0') numCnt++; else if (c ='a') albCnt++; else if (c ='A') albCnt++; else if (c == ' ') spaceCnt++; else charCnt++; } printf("%d, %d, %d, %d other", numCnt, albCnt, spaceCnt, numCnt); return 0; }

汉阳区17133184814: 用c语言写:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
源左派维: #include "stdio.h" #include "string.h" int main() { char a[200]={}; int i,c_num,s_num,d_num,o_num; printf("Please input a string:"); gets(a); i=c_num=s_num=d_num=o_num=0; while(a[i]!='\n') { if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') c_num...

汉阳区17133184814: C语言 循环语句例题 统计从键盘输入一行字符的个数 -
源左派维: 1 2 3 4 5 6 7 8 9 10#include <stdio.h>intmain() {inti; for(i = 0; getchar() != '\n'; i++); //输入的不是回车就继续输入 printf("你输入了 %d 个字符",i); }

汉阳区17133184814: C语言编程 1输入一行字符,分别统计出其中的英文字母,空格,数字和其它字符的个数. -
源左派维: C语言经典例子之统计英文、字母、空格及数字个数

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网