百韵网 >>  正文

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

来源:www.baiyundou.net   日期:较早时间

#include<bits/stdc++.h>

usingnamespacestd;

intmain(){

chara;ints=1;

scanf("%c",&a);

while(a!='.')

{

if(a==''||a==',')s++;

scanf("%c",&a);

}

cout<<s;

return0;

}

扩展资料

C语言统计文件中的字符数、单词数注意事项

1、空白字符(空格和tab缩进)不计入字符总数;

2、单词以空格为分隔;

3、不考虑一个单词在两行的情况;

4、限制每行的字符数不能超过1000。

5、每次从文件中读取一行,放到缓冲区buffer,然后遍历缓冲区,统计当前行的字符和单词数。fgets()函数用于从文件中读取一行或指定个数的字符。



#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);
}
不知道我有没有说清楚,我自己看程序的时候就是这样自己按程序走几次,一般都能懂,希望对你有帮助···

提供一个思路。

首先你需要判断什么样的情况属于单词。

1.两个空格之间的不间断的字母可以看做一个单词。
2.这个字母可以任意长。(只要比句子短就可以)

如果想省事的话,可以设置3个指针:

phead pword
首先这2个指针都指向句子的首部。
1.遇到第一个空格,且空格后为字母,phead停住,指向这个空格。然后pword继续走。

2.如果pword一直都是遇到字母,则当它的下一个字符为空格或者结束符时,单词数目加1.同时,phead等于pword,继续寻找下边的字符串。

这样一直循环到字符串结束。

#include<conio.h>
#include<stdio.h>
void despace(char *s,int *i)
{
while(s[*i]==' ') (*i)++;
}

int main()
{
int count=0,i=0;
char s[50];
char c;

gets(s);
while((c=s[i])!='\0')
{
if(c==' ')
{
despace(s,&i);
count++;
}
i++;
}
count++;
printf("\ncount:%d",count);
getch();
return 1;
}

#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语言编程:输入一行字符,统计其中有多少个单词,单词中间用空格隔开。~

function long sub(char s[]){
long i = 0;
long count = 0;
for(i=0;i<s.length;i++)
{
if(s[i] == ' ')
{
count++;
}
if(s[i]=='\0')
{
count++;
return count;
}
}
}

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

相关要点总结:

18774327742:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数...
宗到答:输入一行字符分别统计,出其中英文字母空格数字和其他字符的个数的源代码如下:include<stdio.h> int main(){ char c;int letters=0,spaces=0,digits=0,others=0;printf("请输入一些字母:\n");while((c=getchar())!='\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters...

18774327742:c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出...
宗到答:程序设计思路如下:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数。include "stdio.h"main(){ char str[100],ch; /*定义str字符串,定义ch用来存放要统计的字符*/ ...

18774327742:C语言 从键盘读入一个字符串,统计其中的数字出现的个数
宗到答:include <stdio.h>int sumdig(char ch);// 是数字返回1 不是返回0int main(){ int count=0; char c; printf("请输入一个字符串"); while(1) { c=getchar(); if(c=='\n') break; count=count+sumdig(c); } printf("其中数字的个数为%d",cou...

18774327742:输入一行字符,分别统计其中10个数字字符,0到9出现的次数。永c语言怎么...
宗到答:include"stdio.h"include "string.h"int main(){ int a[10]={0};char ca[100];gets(ca);int i;for (i=0;ca[i]!='\0';++i){ if(ca[i]>='0'&&ca[i]<='9')a[ca[i] - '0']++;} printf("数字0到9分别出现的次数如下\n");for (i=0;i<10;i++){ printf("%d:%d...

18774327742:C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输...
宗到答:代码如下:/*编程从键盘输入一个字符串,统计该字符串中从'a'到'z'共26个小写字母各自出现的次数,将结果存入数组中,并输出*/ include<stdio.h> include<string.h> define N 100 main(){int i,j=0,c[26]={0};char str[N];printf("请输入一个字符串:");gets(str);for(i=0;i<...

18774327742:1. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个...
宗到答:include <stdio.h> int main(){ int i=0, space=0, num=0, n=0, ch=0;char s[20];printf("请输入一串字符 ");gets(s);while(s[i] != '\0'){ if(s[i]==' ')space++;else if(s[i]<='9' && s[i]>='0')num++;else if(s[i]<='z' && s[i]>='a' || s[...

18774327742:C语言编程:输入一行字符,统计其中英文字母的个数?
宗到答:include<stdio.h> int main(){char s[200];int i,n=0;gets(s);for(i=0;s[i];i++)if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')n++;printf("%d\n",n);getch();return 0;}

18774327742:c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符...
宗到答:可以参考下面的代码:include <stdio.h> intmain(){ inta,b,c,ch;a=b=c=0;//计数器初始化为0.while((ch=getchar())!='\n')//循环读取字符,到换行结束。{ if(ch>='0' && ch<='9')//数字 a++;else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母 b...

18774327742:c语言:输入一行字符,统计出其中单词的个数,个单词之间用空格分隔,空 ...
宗到答:/*统计一个字符串单词的个数,单词间以一到多个空格分隔。*/ include main(){char a[100];int i,s=0;printf("请输入字符串:\n");gets(a);if(a[0]!='')s+=1;for(i=1;a[i]!='\0';i++){ if(a[i-1]==''&& a[i]!='')s++;} printf("此字符串的单词有%d个\n",s...

18774327742:c语言编程。从标准输入设备上输入一个字符串,分别统计其中每个数字...
宗到答:代码如下:include <stdio.h> int main(){ char stringss[1024];int i,num[4]={0};int j = 0;char c;while((c=getchar()) !='\n'){ stringss[j] = c;j++;} for(i=0;i<j;i++)//统计字符串,遇到'\0'结束 { if(stringss[i]>='0'&&stringss[i]<='9')//统计数字...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网