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

c语言统计一个字符串中的单词个数

发布时间: 2023-06-04 21:30:19

‘壹’ c语言中怎样统计字符串中包含英文字母的个数

c语言中要统计字符串中包含英文字母的个数可以参考以下内容:

main()

{

char str[100],*p;

int num[4],i;

p=str;

gets(str);

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

num[i]=0;

for(;*p!='';p++)

{

if((*p<='z'&&*p>='a')||(*p<='Z'&&*p>='A')) num[0]++;

else if(*p==' ') num[1]++;

else if((*p<='9'&&*p>='0')) num[2]++;

else num[3]++;

}

printf("%d %d %d %d ",num[0],num[1],num[2],num[3]);

}

(1)c语言统计一个字符串中的单词个数扩展阅读:

在写代码的过程中需要注意:

void main()的用法并不是任何标准制定的。 C语言标准语法是int main,任何实现都必须支持int main(void) { /* ... */ }和int main(int argc, char* argv[]) { /* ... */ }。

类似于a+=a++;或者(i++)+(i++)+(i++)属于未定义行为,并不是说c语言中还未定义这种行为,它早有定论,它的结果取决于编译器实现,不要写这样的代码。

‘贰’ C语言统计单词个数

Q:输入一串字符串,输出其中有多少个单词。
Eg:Good Wishes
A:

#include <stdio.h>#include <string.h>#define SIZE 20int main()
{ char str[SIZE]={''}; int count=0;
printf("plz input the string ");
gets(str);
puts(str); int length = strlen(str); for (int i=0;i<length;i++)
{
if(str[i]!=' ')
{ count++; while(str[i]!=' '&&str[i]!='')
{
i++;
}
}
}
printf("%d ",count); return 0;
}

‘’和‘0’的区别:
在c语言中,它们都是字符,都用对应的ASCII码来存储。例如第一个ASCII码,0,对应字符为(Null),就是 ‘’,即空字符。我们在c语言中判断一个字符串是否结束的标志就是看是否遇到‘’,如果遇到‘’,则表示字符串结束。字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,但是字符常量可以像整数一样在程序中参与相关运算。

(2)c语言统计一个字符串中的单词个数扩展阅读

字符串所有字符,如果当前字符不为空,单词数+1,再嵌套一个while循环,判断当前单词是否结束。

#include <stdio.h>

#include <string.h>

int count_words(char* s)

{
int len=strlen(s);

int count,i;

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

{

if(*(s+i)!=' '){ // 如果当前代码不为空

count++; //单词数+1

while(*(s+i)!=' '&& i<len) //判断当前单词是否结束

i++;

}

}

return count;

}

int main()

{

char* a="i love you";

printf("%d",count_words(a));

}

‘叁’ 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语言统计字符串中指定的单词个数

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

/*编写一个函数,该函数可以统计一个长度为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;

}