商城首页欢迎来到中国正版软件门户

您的位置:首页 > 软件教程 >紧急!C语言函数编写统计字符串中字母出现次数的方法

紧急!C语言函数编写统计字符串中字母出现次数的方法

  发布于2024-12-31 阅读(0)

扫一扫,手机访问

急!c语言编写函数实现统计一个字符串中字母出现的次数

#include

#define N 100

void count(char str[],int times[]) //统计小写字符出现次数

{

int i;

for(i=0;str[i]!='\0';i++)

{

if(str[i]>='a' & str[i]<'a'+26) //只统计小写字符

times[str[i]-97]++; //字符a的ascii码为97,str[i]-97正好将26个字母对应在times数组的26个位置上。

}

}

int main()

{

char str[N];

int i,times[26]; //time数组中每一个元素代表一个小写字符,其值代表字符的出现次数

for(i=0;i<26;i++) //初始化,所有字符次数置0

times[i]=0;

scanf("%s",str); //读入字符串

count(str,times); //调用函数统计次数,让times装载统计结果

for(i=0;i<26;i++) //输出结果,小写字符a的ascii码为97.

{

printf("%c\t%d\n",i+97,times[i]);

}

return 0;

}

c语言输入一个字符串计算某字符出现次数

可以参考下面的代码:

#include

#include

voidmain()

{charc,s[80];inti,k=0;

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

printf("Pleaseinputacharacter:");c=getchar();

for(i=0;s[i]!='\0';i++)

{if(s[i]==c)

k++;

}

printf("%cisfound%dtimes",c,k);

}

C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

急!c语言编写函数实现统计一个字符串中字母出现的次数

扩展资料:

C语言参考函数

C语言labs()函数:整数的绝对值(针对long类型)

C语言isgraph()函数:判断一个字符是否是图形字符

C语言isdigit()函数:判断一个字符是否为数字

C语言iscntrl()函数:判断一个字符是否为控制字符

C语言isalpha()函数:判断一个字符是否是字母

C语言isalnum()函数:判断一个字符是否是字母或者数字

C语言frexp()函数:提取浮点数的尾数和指数部分

参考资料来源:百科-c语言

C语言关于统计一行数字字符中每个数字字符出现的次数

大部分错误都集在中stat方法中,如下:

1

2

3

4

5

6

7

8

9

10

voidstat(char*s,int*num) {

inti;

charch;

ch=s[i]; //你上面只是定义了i,从未赋值,i的值就是一个随机数

while((ch=getchar())!='\n') { //你前面的indata就已经读入数据到s中了,这里只应该从s中读取并比较它是不是\0就可以了,而不应该是getchar

if(ch>='0'&ch<='9')

num[ch-'0']+=1;

}

}

另外一个很重要的错误,你的num数组在使用前也并未初始化,会导至num中的数字也全部是随机的

修改如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

#include

#define M 10

#define N 10

voidindata(char*s) {

inti;

for(i=0; i

s[i]=getchar();

}

voidstat(char*s,int*num) {

inti=0;

charch;

ch=s[i];//取第一个元素

for(; i

i=0;

while(ch!='\0') {

if(ch>='0'&ch<='9')

num[ch-'0']++;

ch=s[++i];//取下一元素

}

}

voidoutdata(int*num) {

inti;

for(i=0; i

printf("%d : %d\n",i,num[i]);

}

main() {

intnum[N];

chars[M];

indata(s);

stat(s,num);

printf("Output the result:\n");

outdata(num);

}

//当然stat也可以进一步简化,变为

voidstat(char*s,int*num) {

inti=0;

charch;

for(; i

i=0;

while((ch=s[i++])!='\0') {

if(ch>='0'&ch<='9')

num[ch-'0']++;

}

}

助:用c语言编程统计输入的一个字符串中各字母出现的次数

我写的:避免双重循环:

#include "stdio.h"

#define N 100

int main() {

char s[N];

printf("Input a string:\n");

scanf("%s",s);

int i,up[26]={0},down[26]={0};

for(i=0;i

if(s[i]>='A' & s[i]<='Z') // 大写字母

up[ s[i]-'A' ]++;

else if(s[i]>='a' & s[i]<='z') //小写字母

down[ s[i]-'a' ]++;

else { // 其它 出错

printf("What you input is not a valid string,error--> %c\n",s[i]);

return 0;

}

}

printf("The result is as follows:\n");

for(i=0;i<26;i++) {

if(up[i]!=0)

printf("%c----%d\n",i+'A',up[i]);

if(down[i]!=0)

printf("%c----%d\n",i+'a',down[i]);

}

return 0;

}

本文转载于:https://www.docexcel.net/show/24_142656.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注