如何用C++ 设计一个算法对字符串中每个字符出现的频率进行统计??

私有数据成员
char *str: 指向要统计的字符串。
char (*p)[2]:动态分配二维空间,用以存放str所指字符串中出现字符及其出现的次数(次数在存放是时,用该数字对应的ASCII值存放;在输出次数时,输出该ASCII字符对应的ASCII值即可)。
int size:存放字符串中出现的所有不同的字符的个数。
公有成员函数
CString(char *s):根据s参数初始化数据成员str;p和size初始值为0。
void Count():p根据s所指字符串长度分配空间。然后把str所指字符串中的每个字符放入p数组中,设置每个字符出现次数为1.根据p数组统计不同字符出现的频率,并求得size的实际大小。最后根据size的实际大小,重新分配p所指空间,并把不同字符及出现次数重新放回p数组。
void show():屏幕显示字符串、字符串的每个字符和与之对应的次数。
~CString():释放动态分配的空间。
(3) 在主程序中定义字符串char s[]=“abdabcdesffffd”.定义一个CString类对象test,用s初始化test,完成对该类的测试。

计算机中一个字符只占一个字节,有效的字符个数最多不超过128个,因此,可以定义一个128位的数组来存储不同字符的出现次数,用数组下标来表示相应的字符。

参考代码:

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-11
用过string没有?不需要定义指针什么的。
#include<string>
string a="abdabcdesffffd”;
string b=a;
......
没试过赶快看。
”对字符串中每个字符出现的频率统计“,你这里的字符是笼统的(数字,字母,其他),如果追究起来,还有用hash,或者map<string,int>.一楼显然小看了这道题。这道题测试数据强大的话,只能hash,不是那么简单的。
第2个回答  2015-09-09
字母不多加大小写啥的也不多,直接扫一遍计数就好了。。。。。
第3个回答  2009-10-09
这太简单了吧。。。本回答被提问者采纳

如何用C++ 设计一个算法对字符串中每个字符出现的频率进行统计??
计算机中一个字符只占一个字节,有效的字符个数最多不超过128个,因此,可以定义一个128位的数组来存储不同字符的出现次数,用数组下标来表示相应的字符。参考代码:

...统计输入的一个字符串中各种不同字符出现的频度
char string[100];cout << "请输入一个长度不大于100的字符串:"<<endl;cin >> string;frequency(string);}

c++中怎样计算一个字符串中其中一个字符出现的次数
用一个循环比如while(a[i]!='\\0')然后用switch语句判断每一个元素出现的次数,用一个变量自加来计数。

c++统计某字符串中某指定字符出现的次数。
system("pause");\/\/使程序暂停(按任意键继续),比赛中不要加这句 return 0;}

C++,输入字符串,统计各个字母出现次数,显示字母和次数,求大神知道咩...
1、首先我们选择鼠标单击文件里的“新建”项目。2、选择为:控制台应用程序 - “名称:计算字符串中每个字母的出现次数 - ”确定。3、之后我们选择确定系统生成的代码。4、首先编写一个字符串进行测试。5、测试代码1:使用Dictionary集合和循环来确定测试代码。6、测试结果1:程序成功运行后显示每个字母的...

用c++调用count函数,统计字符串中每个字母出现的次数,函数头如下:int*...
includeusingnamespacestd;intfun(chars[]){intn=0,i;for(i=0;s[i]!='\\0';i++)if(s[i]>='a'&&s[i]='A'&&s[i]>s;n=fun(s);cout<<"字母个数:"<

...有哪几个字符(只有字母),并统计每个字符出现的次数;
\\x0d\\x0a \/\/ 统计各字母出现次数\\x0d\\x0a int n=strlen(s);\\x0d\\x0a for (i=0; i<n; i++)\\x0d\\x0a {\\x0d\\x0a s_i=s[i]-'a';\\x0d\\x0a count[s_i]++; \/\/ 字符\\x0d\\x0a }\\x0d\\x0a \/\/ 输出结果\\x0d\\x0a for (i=0; i<26;...

用C++编写一个程序实现删除字符串中重复的字符,并分别统计,重复的字 ...
= '\\0'){ \/\/判断当前字符,是否出现过 if(char_counts.count(str[cur_idx]) == 0){ char_counts[str[cur_idx]] = 1; str[cur_next] = str[cur_idx]; cur_next++; cur_idx++; }else{ char_counts[str[cur_idx]]++; cur_...

C++中怎样统计一个字符串中包括空格数在内的每个字符的出现次数
main(void){ int a[27]={0};\/\/a[26]代表空格 int i;char c;while ((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))a[tolower(c)-'a']++;\/\/统计每个字符出现的次数,不分大小写 else if(c=='')a[26]++;} for (i = 0;i<26;i++){ p...

c\/c++编程:将字符串按重复次数从多到少的顺序输出 示例 helloworld 输 ...
代码如下:include <iostream> include <algorithm> include <cstring> include <vector> include <functional> using namespace std;struct Node { Node(char _c,int _cou):ch(_c),count(_cou){ } char ch;\/\/字符标记 int count;\/\/字符出现的次数 };\/\/自定义比较运算符 inline bool operator...

相似回答