/*定义一个类,用于对10个字符串进行管理。要求:
(1)在定义对象时,能够为字符串清空;
(2)定义变换构造函数,能够为字符串赋以给定的字符串;
(3)定义复制构造函数;
(4)定义成员函数,能够为字符串输入数据;
(5)定义成员函数,能够将字符串显示出来;
(6)定义成员函数,用于找出每个字符串中的最小值(ASCII码最小的字符)及其个数,最小值由函数值返回,个数由参数带回;
(7)定义成员函数,用于为字符串按从小到大顺序排序。
(8)定义main函数,合理地调用上述每个函数。
*/
#include<iostream>
#include<string>
using namespace std;
class cString
{
private:
char *s;
string str[10];
public:
cString();
cString(const string a[10]);
cString(const cString &);
~cString()
{
delete[]s;
}
void input();
void disp();
char *findmin(int num[]);
void sorting();
char &operator[](int);
};
cString::cString()
{
for (int i = 0; i < 10; i++)
str[i] = "";
}
cString::cString(const string a[10])
{
for (int i = 0; i < 10; i++)
str[i] = a[i];
}
cString::cString(const cString &x)
{
for (int i = 0; i < 10; i++)
str[i] = x.str[i];
}
void cString::input()
{
cout << "请输入10个字符串" << endl;
for (int i = 0; i <10; i++)
{
cin >> str[i];
}
}
void cString::disp()
{
for (int i = 0; i < 10; i++)
{
cout << str[i]<<endl;
}
}
char &cString::operator[](int i)
{
return s[i];
}
char *cString::findmin(int num[])
{
char *min=new char [10];
for (int i=0; i <10; i++)
{
min[i] = str[i][0];
for (int j = 0; str[i][j] != '\0'; j++)
{
if (str[i][j] < min[i])
{
min[i] = str[i][j];
num[i] = 0;
}
if (str[i][j] == min[i])
{
num[i]++;
}
}
}
for (int i = 0; i < 10; i++)
{
cout << min[i] ;
}
return min;
}
void cString::sorting()
{
cout << "字符串排序:" << endl;
int i = 9;
while (i > 0)
{
int flag = 0;
for (int j = 0; j < i; j++) {
if (str[j] > str[j + 1]) {
flag = j;
string tmp = str[j]; str[j] = str[j + 1]; str[j + 1] = tmp;
}
}
i =flag;
}
disp();
}
int main()
{
string a[10] = { "asdca","qw2eq","rty3r","po4iu","vr22gfg","fggsd6g","w7qeqwr","vdse8","m9ogsa","e10fvs" };
int num[10] = {0};
cString string1(a);
//string1.input();
cString string2=string1;
cout << "string1:" << endl;
string1.disp();
cout << "string1:" << endl;
//string2.disp();
string1.sorting();
char *p = string1.findmin(num);
cout << "各字符串中最小值及对应个数依次为: " << endl;
for (int i = 0; i <10; i++)
{
cout <<*(p+i) << '\t'<< num[i] << endl;
}
system("pause");
return 0;
}
c++上机4
最新推荐文章于 2022-10-25 10:55:09 发布