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

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:34:32
私有数据成员
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位的数组来存储不同字符的出现次数,用数组下标来表示相应的字符。

参考代码:

用过string没有?不需要定义指针什么的。
#include<string>
string a="abdabcdesffffd”;
string b=a;
......
没试过赶快看。
”对字符串中每个字符出现的频率统计“,你这里的字符是笼统的(数字,字母,其他),如果追究起来,还有用hash,或者map<string,int>.一楼显然小看了这道题。这道题测试数据强大的话,只能hash,不是那么简单的。

字母不多加大小写啥的也不多,直接扫一遍计数就好了。。。。。

这太简单了吧。。。