35.建立一个类 SUM,使用二维数组输入"Pascal", “BASIC”, “Great wall”, “Fortran”, Follow me",将它们按从小到大的顺序排列后输出。
具体要求如下:
- 私有数据成员
- char *p[5]:存放二维数组每行的字符串的地址。
- 公有成员函数
- SUM(char *s[5]):构造函数,初始化成员数据。
- void process():对二维数组中存放的字符串进行排序。
- void print():输出二维数组中排好序的字符串。
- 在主程序中对该类进行测试
#include<iostream>
#include<cstring>
using namespace std;
class SUM{
char *p[5];
/*p是一个数组(空间已经开辟好了),这个数组中存放的是char类型的指针,
你可以让这些指针指向新的域,从而表示字符串,前提是要给这些指针开辟空间*/
public:
SUM(const char *s[5]){
for(int i=0;i<5;i++){
p[i] = new char[strlen(s[i])+1];
strcpy(p[i],s[i]);
}
}
void process(){
for(int i=0;i<4;i++){
for(int j=0;j<4-i;j++){
if(strcmp(p[j],p[j+1])>0){
char *t = p[j];
p[j]=p[j+1];
p[j+1] = t;
}
}
}
}
void print(){
for(int i=0;i<5;i++){
cout<<p[i]<<"---";
}
cout<<endl;
}
};
int main(){
const char *s[5]={"Pascal", "BASIC", "Great wall", "Fortran", "Follow me"};
SUM sum(s);
sum.print();
sum.process();
sum.print();
return 0;
}