[题目]编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串s1的值为"pear",字符串s2的值是"apple",连接后的字符串存入字符数组s3,排序后得到"aaeelpppr"。 [编程要求] 试建立一个类STRING,实现将两个成员数组(str1和str2)中的字符串连接成一个字符串,并将连接后的字符串按升序排列存入成员数组str3中。 如str1中字符串"pear",str2中存字符串"apple",连接并排序后存入成员数组str3中的字符串为"aaeelpppr"。 具体要求如下: (1)私有数据成员。 char str1[100]; char str2[100]; char str3[100]; (2)公有成员函数 STRING(char ch1[],char ch2[]):构造函数,用分别参数ch1数组初始化私有成员str1数组,参数ch2数组初始化私有成员str2数组; void process():实现把成员数组str1和str2连接,并把连接后的字符串按升序排列后存入成员数组str3中; void show():输出成员数组str3; (3)在主函数中完成对该类的测试。定义一个STRING类的对象s;分别用"pear"初始化对象s1中的成员数组str1,用"apple"初始化成员数组str2,按上述要求处理并输出结果 */ #include<iostream.h> #include<string.h> #include<fstream.h> class STRING { char str1[100]; char str2[100]; char str3[100]; public: STRING(char ch1[],char ch2[]) { strcpy(str1,ch1); strcpy(str2,ch2); } void process() { /********** Begin **********/ /********** End ***********/ } void show() { cout<<str3<<endl; //此处将结果输出到文件"bc02.in",请勿改动,否则影响判分 ofstream outf("bc02.in"); outf<<str3<<endl; outf.close(); } }; void main() { STRING s("pear","apple"); s.process(); s.show(); }
时间: 2024-03-17 12:40:45 浏览: 63
以下是完整的代码实现:
```cpp
#include <iostream>
#include <cstring>
#include <algorithm>
#include <fstream>
using namespace std;
class STRING {
private:
char str1[100];
char str2[100];
char str3[100];
public:
STRING(char ch1[], char ch2[]) {
strcpy(str1, ch1);
strcpy(str2, ch2);
}
void process() {
// 将两个字符串连接起来
strcpy(str3, str1);
strcat(str3, str2);
// 对连接后的字符串升序排序
sort(str3, str3 + strlen(str3));
}
void show() {
cout << str3 << endl;
// 将结果输出到文件"bc02.in"
ofstream outf("bc02.in");
outf << str3 << endl;
outf.close();
}
};
int main() {
STRING s("pear", "apple");
s.process();
s.show();
return 0;
}
```
说明:
1. 在构造函数中,使用`strcpy()`函数将参数`ch1`和`ch2`分别复制到私有成员数组`str1`和`str2`中。
2. 在`process()`函数中,使用`strcat()`函数将`str1`和`str2`连接起来,得到连接后的字符串,并使用`sort()`函数对其进行升序排序。
3. 在`show()`函数中,先输出结果到控制台,然后将结果输出到文件`bc02.in`中。
阅读全文