当前位置: 首页 > 英汉互译 > 英语单词

c语言单词统计,c语言统计文本中单词的个数

  • 英语单词
  • 2025-10-06

c语言单词统计?为了统计一行字符中的单词个数,我们可以编写一个简单的C语言程序。首先,我们需要定义一个足够大的字符数组来存储输入的字符串。接下来,我们要求用户输入一行字符,并在输入结束时按回车键。程序将统计并输出单词的数量。下面是一个示例程序,那么,c语言单词统计?一起来了解一下吧。

c语言如何统计字母的个数

根据英语的书写习惯,在每个单词前后都会有空格分隔。 所以可以依据空格来划分单词。

不过,由于空格可能存在连续多个,所以仅统计空格数是不可以的,需要更复杂一些的算法。

一、算法设计:

核心思想是通过一个flag,来确定单词的起始, 每出现一个单词的起始,则表示存在一个单词。 这样统计出现的单词起始个数,即可获得单词总数。

1、flag初始为1;

2、遍历字符串。

3、对于每个字符,如果出现非空格字符,且flag为1,则为单词起始,累加计数器。同时赋值flag为0。

4、在flag为0情况下,如果出现空格,表示上一个单词已经结束,设置flag为1。

5、 遍历结束后输出结果。

二、参考代码:

#include

intmain()

{

chars[200];

inti,n=0,flag=1;

gets(s);//输入字符串。

for(i=0;s[i];i++)//遍历

{

if(flag==1)

{

if(s[i]!='')//单词起始

{

n++;

flag=0;

}

}

elseif(s[i]=='')//上一个单词结束。

flag=1;

}

printf("%d\n",n);//输出结果。

return0;

}

c语言统计一行字符单词个数

#include

#include

int main()

{

char a[80];

int i,num=0;

gets(a);

for(i=0;i<80;i++)

{

if( (a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A')) continue;

if (a[i]=' ')

{

i++;

ifif( (a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A'))//当再次遇到字母时就计数

num++;

}

num++;//这是因为到了最后一个单词时 无法执行if( (a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A')) num++;中的num++所以最后要加上。

}

printf("%d",num);

}

根据你的程序改的

统计单词数量c语言

例1. 统计一个字符串中单词的个数(假定单词之间以空格分隔)。

由于在第一个单词之前有可能没有空格符,因此若仍然采用查找一个单词的开头的方式,实现起来将会不甚方便。不过,可以变换一下思路,改为查找一个单词的末尾。

可以发现,在除了最后一个单词之外的每个单词之后至少有一个空格符,而在最后一个单词之后可能跟一个空格符,也可能直接跟一个空字符'\0',因此可以将判断规则修改为“当相邻的两个字符中,前一个是非空格字符,而后一个是空格符或空字符'\0'时,说明找到一个新的单词”。

源程序:

#include

#include

int main(void)

{char a[200];

int i,n,c=0;

printf("请输入一行以空格分隔的单词:\n");

gets(a);

n=strlen(a);

for(i=0;i<=n-1;i++)

{if(a[i]!=' '&&(a[i+1]==' '||a[i+1]=='\0'))

c++;

/*若第i个字符不是空格符,第i+1个字符是空格符或'\0',则表示找到一个单词的末尾*/

}

printf("单词个数=%d\n",c);

return 0;

}

例2. 统计一个字符串中单词的个数(假定单词之间以空格或标点符号分隔)。

c语言统计单词频率

#include "stdio.h"

main()

{

char s[81],c;

int i,num=0,word=0;

printf("请输入一行英文:\n");

gets(s);

for(i=0;(c=s[i])!='\0';i++) /*依次读取字符,直到遇到空字符结束*/

if(c==' ') word=0;/* 若读取的字符为空则给WORD赋值0*/

else if(word==0)/* 当空格后读取字符不为空时给word赋值1并且NUM加一*/

{

word=1;

num++;

}

printf("%d\n",num);

}

c语言统计英文单词个数

#include "stdio.h"

main()

{

char s[81],c;

int i,num=0,word=0;

printf("请输入一行英文:\n");

gets(s);

for(i=0;(c=s[i])!='\0';i++)//判断句子是否到未

if(c==' ') word=0;//是空格就为0

else if(word==0)//不是空格就判断之前有没有空格

{

word=1;//复位用来判断空格是否存在的开关

num++;//如果之前有空格,单词数加1

}

printf("本行中共有%d个单词.\n",num);

}

其原理很简单:

对每个字符进行判断,如果是空格就把变量word标记为0,如果不是空格就判断word是不是0(即判断之前有没有空格),如果存在空格单词量加1,然后复位word变量为0。就这样重复,知道句子结束

以上就是c语言单词统计的全部内容,C语言:统计输入的一行英文句子中的字母及单词个数,带注解!//通过键盘输入一行英文句子,统计其中的英文字母和单词的数量,单词之间用空格分开(标点符号不算单词);#include #include#includemain(){char string[100];//根据拟从键盘输入的字串的长度需要适当调整,内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。

猜你喜欢