当前位置:首页 » 编程语言 » c语言统计字符和单词
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言统计字符和单词

发布时间: 2022-03-31 11:49:03

㈠ 试写一个c语言程序统计输入的字符串中,包含的字符数,行数及单词数

#include<stdio.h>

#defineIN1//在单词内
#defineOUT0//在单词外
/**
*统计输入的行数,单词数与字符数
*/
intmain(void)
{
//c:每次读的支付,nl:行数,nw:单词数,nc:字符数,state:标示状态
intc,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF)
{
++nc;
if(c==' '){
++nl;
}

if(c==''||c==' '||c==' '){
state=OUT;
}elseif(state==OUT){
state=IN;
++nw;
}
}
printf("%d%d%d",nl,nw,nc);
return0;
}

㈡ 如何用C语言编写一个程序,统计输入字符串的相同单词个数

你这个问题需要用到模式匹配的算法,正好我现在也学这个,在《数据结构》上有,书上已经有经典代码了,我就不贴出来了,最好是用KMP算法,这个是经过改进了的,速度比较快!

㈢ C语言:统计一行字符串中单词的个数

我把你程序改了一下,可以实现你想要的功能了。
你的char
str[81];
int
i,num=0,word=0;
char
e;
这几个定义变量的位置都放错了。
还有你的
数字个数和总的字符个数
也没统计,我跟你加了。
#include
#define
maxsterlen
255
#include
int
main()
{
int
a=0,b=0,c=0,d=0;
char
str[81];
int
i,num=0,word=0;
char
e;
printf("please
input
the
string:\n");
gets(str);
for(i=0;i<81;i++)
{
if(str[i]!='\n')
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z'))
a++;
else
if(str[i]>='0'&&str[i]<='9')
b++;
else
if(str[i]=='
')
c++;
else
d++;
}
}
for(i=0;(e=str[i])!='\0';i++)
{
if(e=='
')
word=0;
else
if(word==0)
{
word=1;
num++;
}
}
printf("单词个数
%d
\n",num);
printf("字母个数%d\n",a);
printf("数字个数%d\n",b);
printf("空格个数%d\n",c);
printf("总的字符个数%d\n",d);
}

㈣ C语言,统计字符串(含数字、空格、标点、英文)中的单词个数

你先按照标点符号和空格来拆分字符串,把字符串拆成一个字符串数组,里面每个元素是可能的单词。
然后,你再定义一个验证函数,参数是字符串,函数功能就是验证传递进来的字符串是否是符合条件的单词,具体规则就按照你问题上来,遍历字符串并做几个判断就可以了。
最后你再main函数中遍历字符串数组,循环调用y验证函数就可以了。

㈤ 用C语言统计字符串中单词的个数

我把你程序改了一下,可以实现你想要的功能了。
你的char
str[81];
int
i,num=0,word=0;
char
e;
这几个定义变量的位置都放错了。
还有你的
数字个数和总的字符个数
也没统计,我跟你加了。
#include

#define
maxsterlen
255
#include

int
main()
{
int
a=0,b=0,c=0,d=0;
char
str[81];
int
i,num=0,word=0;
char
e;
printf("please
input
the
string:\n");
gets(str);
for(i=0;i<81;i++)
{
if(str[i]!='\n')
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z'))
a++;
else
if(str[i]>='0'&&str[i]<='9')
b++;
else
if(str[i]=='
')
c++;
else
d++;
}
}
for(i=0;(e=str[i])!='\0';i++)
{
if(e=='
')
word=0;
else
if(word==0)
{
word=1;
num++;
}
}
printf("单词个数
%d
\n",num);
printf("字母个数%d\n",a);
printf("数字个数%d\n",b);
printf("空格个数%d\n",c);
printf("总的字符个数%d\n",d);
}

㈥ c语言统计单词个数

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

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

一、算法设计:

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

1、flag初始为1;

2、遍历字符串。

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

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

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

二、参考代码:

#include<stdio.h>
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);//输出结果。
return0;
}

㈦ c语言统计字符串中指定的单词个数

给你个类似的。。。你小改下,就应该可以了。希望对你有帮助

/*编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,

子字符串为:as,则应输出6。

[程序分析]

由于小串中只有2个字符所以可用str[i]==sbustr[0]&&str[i+1]==substr[1]来判断小串是否与长串当前位置(str[i])相同(即出现一次)。

因而只要让长串当前位置逐一向后移即可(用for()循环来完成)

*/

//[源程序]

#include"stdio.h"

#include"string.h"

#include"conio.h"

intfun(char*str,char*substr)

{inti,n=0,s=strlen(str);

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

if((str[i]==substr[0])&&(str[i+1]==substr[1]))

n++;

returnn;

}

main()

{

charstr[81],substr[3];

intn;

printf("输入的字符串:");

gets(str);

printf("子字符串:");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf("n=%d ",n)

}

/*******************************************************************************************************/

按你的意思我改了下调用函数里的

intfun(char*str,char*substr)

{

inti,j,n=0,s=strlen(str),m=strlen(substr),pan=1;

printf("%d ",m);

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

{pan=1;

for(j=0;j<m;j++)

if((str[i+j]!=substr[j]))//这是进行比较,不是跳出

{pan=0;

break;}

if(pan)

n++;

}

returnn;

}

㈧ 写一个c语言程序,统计一个字符中单词的个数

#include<stdio.h>
#include<string.h>
#include<ctype.h>

intWordCount(chara[])
{
intn=strlen(a);
intcnt=0;
inti;
for(i=0;i<n;i++)
{
if(!isalpha(a[i])&&i-1>=0&&isalpha(a[i-1]))
{
cnt++;
}
}
returncnt;
}
intmain()
{
chara[1024];
while(gets(a))
{
printf("%d ",WordCount(a));
}
return0;
}

㈨ c语言 输入一行字符,统计有多少个单词

#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;
else if(word==0)
{
word=1;
num++;
}
printf("There are %d words in the line.\n",num);
return 0;
}

㈩ 用C语言编译一个程序:统计字符串里有几个单词和几个句子

用两个计数器,初始化为0遇到字符串里的一个空格单词数加一,遇到一个逗号或句号句子数加一,程序也很简单,自己试着做下吧