//设计一个算法,计算一个顺序穿s中每个字符出现的次数
#include<iostream>
using namespace std;
const int MaxSize = 100;
class SqStringClass
{
char *data; //存放串中的元素
int length; //串中的字符的个数
public:
SqStringClass(); //构造函数
~SqStringClass(); //析构函数
SqStringClass &operator = (char *cstr); //重载赋值运算符
int StrLength(); //求串长度
void DispStr(); //输出串
void count(); //计数
};
SqStringClass::SqStringClass()
{
data = new char[MaxSize];
length = 0;
}
SqStringClass::~SqStringClass()
{
delete []data;
}
SqStringClass &SqStringClass::operator = (char *cstr)
{
int i;
for(i=0;i<cstr[i]!='\0';i++)
data[i] = cstr[i];
length = i;
return *this;
}
int SqStringClass::StrLength()
{
return length;
}
void SqStringClass::DispStr()
{
for(int i=0;i<length;i++)
cout << data[i];
cout << endl;
}
void SqStringClass::count()
{
int i,j,k,c=0;
bool f = true;
char a[100];
a[c]=data[0]; //初值
while(f)
{
k=0;
for(i=0;i<length;i++) //计算次数
{
if(a[c] == data[i])
k++;
}
cout << a[c] << "出现的次数为:" << k << endl;
for(i=0;i<length;i++) //把data中不在a【】中的,赋值给a
{
for(j=0;j<=c;j++)
if(a[j] == data[i])
break;
if(j == c+1)
{
a[++c]=data[i];
break;
}
}
if(i==length)
f = false;
}
}
int main()
{
SqStringClass s;
char a[100];
cout << "请输入一个字符串:";
cin >> a;
s = a;
s.count();
return 0;
}