/* [题目]编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串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 / int len1 = strlen(str1); int len2 = strlen(str2); int len3 = len1 + len2; for (int i = 0; i < len1; i++) { str3[i] = str1[i]; } for (int i = 0; i < len2; i++) { str3[i + len1] = str2[i]; } sort(str3, str3 + len3); / 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-04-06 16:30:25 浏览: 65
这是一道关于字符串处理的题目,要求将两个字符串连接起来并按升序排列。这里给出了一个STRING类,其中包含三个私有成员变量str1、str2和str3,分别表示输入的两个字符串和处理后的结果字符串。
在构造函数中,将输入的两个字符串分别复制给str1和str2成员变量。在process函数中,首先计算出str1和str2的长度,然后使用两个for循环将它们连接起来存入str3中,并使用sort函数对str3中的字符进行升序排序。最后,在show函数中将结果输出到文件中。
在主函数中,定义了一个STRING类的对象s,将输入的两个字符串"pear"和"apple"作为参数传入构造函数中,然后调用process函数处理并输出结果。
需要注意的是,这段代码中使用了一些已经过时的头文件,如<iostream.h>和<fstream.h>,在实际编程中应该使用<iostream>和<fstream>等新的标准头文件。
相关问题
编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串s1的值为“pear,字符串s2的值是“apple,连接后的字符串存入字符数组s3,排序后得到“aeelpppr编程要求] 试建立一个类STRING,实现将两个成员数组(str1和str2)中的字符串连接成一个字符串,并将连接后的字符串按升序排列存入成员数组str3中。0str1中字符串“pear,str2中存字符串"apple,连接并排序后存入成员数组str3中的字符串为“aaeelpppr”。
好的,以下是实现该功能的示例代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
class STRING {
private:
string str1, str2, str3;
public:
void input() {
cout << "请输入字符串1:";
cin >> str1;
cout << "请输入字符串2:";
cin >> str2;
}
void connect() {
str3 = str1 + str2;
}
void sort() {
std::sort(str3.begin(), str3.end());
}
void output() {
cout << "连接后的字符串为:" << str3 << endl;
}
};
int main() {
STRING s;
s.input();
s.connect();
s.sort();
s.output();
return 0;
}
```
上述代码中,我们定义了一个名为STRING的类,其中包含了三个私有成员变量str1、str2和str3,分别表示输入的两个字符串和连接后的字符串。该类中包含四个公有成员函数,分别是input()、connect()、sort()和output(),分别用于输入字符串、连接字符串、排序和输出结果。其中,在sort()函数中,我们调用了C++ STL库中的sort()函数来进行排序。最后在main()函数中创建一个STRING类的对象s,依次调用各个成员函数即可实现题目要求的功能。
编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串s1的值为“pear",字符串s2的值为”apple",将s1和s2连接后得到字符串“pearapple"存入字符数组s3,排序后得到"aaeelpppr"。 输入: pear apple 输出 aaeelpppr
以下是一个 C++ 的示例代码实现:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
string s1, s2, s3;
cin >> s1 >> s2;
s3 = s1 + s2; // 连接两个字符串
sort(s3.begin(), s3.end()); // 排序
cout << s3 << endl;
return 0;
}
```
首先,我们使用 `cin` 读取两个输入字符串 `s1` 和 `s2`。然后,我们使用 `+` 运算符将它们连接成一个字符串 `s3`。接着,我们使用 `sort` 函数对 `s3` 进行升序排序。最后,我们将排序后的字符串 `s3` 输出到屏幕上。
这个程序的输出结果与题目要求的结果一致,即 `aaeelpppr`。
阅读全文