C语言编程:输入一串字母,统计每个字母出现的次数

Python08

C语言编程:输入一串字母,统计每个字母出现的次数,第1张

C语言程序如下:

#include<stdio.h>

int main()

{

char a[100]

char b[24]

int s[100] = { 0 }//用于存储字符的个数 

gets(a)//输入字符

//开始比较

for (int x = 0x <24x++)

{

int c = 0//记录每个字符个数

b[x] = x + 97//为了让b[0]是a,b[1]是b依次类推

for (int i = 0i <100i++)

{

if (b[x] == a[i])

{

++c

s[x] = c

}

}

if (s[x]>=1)//只输出输入中有的字母 的个数

{

printf("%c %d\n", b[x], s[x])

}

getchar()

return 0

}

扩展资料:

程序思路:

分为三部分 首先输入字符串 ,其次设定一个字符数组英文小写字母24, 同时设一个int数组 记录个数, 以及一个int c 为了给int数组赋值。最后在输入的时候进行判断,如果字母的值 大于等于1才输出。

看我旁边做的注解

cnt(s,array)/*调用子函数cnt,并传给参数s,

array。s是字符数组,相当于字符串指针;array是数组好理解*/

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

printf("%d",array[i])

/*

for循环

依次输出26个字母出现的次数。这里%d后面加个空格或逗号分隔才好

*/

printf("\n")

子函数

void

cnt(char

*p,int

arr[])

/*

第一个参数是字符串指针,第二个参数是整型数组

*/

{

int

i

for(i=0i<26i++) /*数组初始化*/

arr[i]=0

/*

26个字母的个数全初始设置为0

*/

while(*p)

/*

循环,*p表示取指针p所指的字符,如果为0则表示字符串结束,退出循环

*/

{

if(*p>='a'&&*p<='z') /*数组元素判断*/

/*

判断是否是a到z的字母,若是才统计*/

arr[*p-'a']++/*p与字母a的差值刚好就是数组arr下标*/

/*

字母a对应数组的下标是0,

b是1,依次类推

*/

p++

/*

指针加1,

指向后面一个字符

*/

}

}

#include<iostream>

#include<string>

using namespace std

int main()

{

char str[50]

int n=0

char *p

p=str

cout<<"请输入字符串:"<<endl

cin>>str

for(int i=0*p!='\0'p++)

{

if(('a'<=*p &&*p<='z') || ('A'<=*p &&*p<='Z'))

{

n++

cout<<*p<<" "

}

else

break

}

cout<<"字符串的数量为:"<<n<<endl

return 0

}

扩展资料:  

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=1234;

printf("a=%d\n",a);

输出结果为a=1234。