编写一个函数,统计在输入字符串中各个不同字符出现的频度(字符串中的合法字符为A~Z的26个字母和0~9的10个数字)。
要求测试该函数的功能。
结果输出:
主要算法:
初始化一个a数组,假设里面依次放的是字母A-Z和0-9。 每遍历字符串一个元素,就将a数组其对应位置的值+1。
void count(char s[])
{
int c[36]={0};
for (int i=0;s[i]!='\0'; i++)
{
if(s[i]>='A'&&s[i]<='Z')
c[s[i] -'A']++;
if (s[i] >= '0' && s[i] <= '9')
c[s[i] - '0' + 26]++;
}
for (int i = 0; i < 36; i++)
{
if(c[i] != 0&&i<=25)
cout << char(i + 'A') << "出现的次数为:" << c[i] << endl;
if (c[i] != 0 && i > 25)
cout << char(i+22)<< "出现的次数为:" << c[i] << endl;
}
}
完整代码:
#include<iostream>
using namespace std;
void count(char s[]);
int main()
{
cout << "请输入一个字符串(大写字母和0-9):" << endl;
char s[100];
cin >> s;
count(s);
return 0;
}
void count(char s[])
{
int c[36]={0};
for (int i=0;s[i]!='\0'; i++)
{
if(s[i]>='A'&&s[i]<='Z')
c[s[i] -'A']++;
if (s[i] >= '0' && s[i] <= '9')
c[s[i] - '0' + 26]++;
}
for (int i = 0; i < 36; i++)
{
if(c[i] != 0&&i<=25)
cout << char(i + 'A') << "出现的次数为:" << c[i] << endl;
if (c[i] != 0 && i > 25)
cout << char(i+22)<< "出现的次数为:" << c[i] << endl;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)