6.建立一个类 STR,连接两个字符串后,将结果字符串中的字符排成升序。例如,字符串 s1 的值为“pear”,字符串 s2 的值为“apple”,将 s1 与 s2 连接后得到字符串“pearapple”,存入字符数组 s3,排序后得“aaeelpppr”
- 私有数据成员:
char s1[80], s2[80],分别存放两个原始字符串;
char s3[160],存放结果字符串。 - 公有成员函数:
STR(char a[],char b[]),构造函数,用字符串参数 a 和 b 分别初始化数据成员字符串 s1 和 s2;
void consort(),合并字符串后存入 s3,再对 s3 中的字符排序;
void show(),输出两个原始字符串和结果字符串。 - 在主程序中定义两个字符数组 char a[80], b[80],任意输入两个字符串,再定义一个 STR 类对象 str,用字符串 a 和 b 初始化该对象,然后按上述要求测试该类。可自行输入任意两个字符串做测试数据。
#include<iostream>
#include<cstring>
using namespace std;
class STR{
char s1[80],s2[80],s[160];
public:
STR(char a[],char b[]){
strcpy(s1,a);
strcpy(s2,b);
}
void consort(){
strcpy(s,s1);
strcat(s,s2);
int len=strlen(s);
for(int i=0;i<len-1;i++){
for(int j=0;j<len-i-1;j++){
if(s[j]>s[j+1]){
char t=s[j+1];
s[j+1]=s[j];
s[j]=t;
}
}
}
}
void print(){
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s<<endl;
}
};
int main(){
char a[80],b[80];
cin.getline(a,80);
cin.getline(b,80);
STR str(a,b);
str.consort();
str.print();
return 0;
}