// 定义控制台应用程序的入口点。 //
#include <iostream>
class string {
public:
string(const char* src = NULL) {
//TODO1:构造函数 //开始添加代码
//结束添加代码 }
~string() {
//TODO2:析构函数 //开始添加代码
//结束添加代码 }
int size() const {
return m_length;
}
const char *c_str() const {
return m_data; }
}
string(const string &src) {
//TODO3:拷贝构造函数 //开始添加代码
//结束添加代码
}
string operator+(const string &src) const {
string ret; //TODO4:运算符+ //开始添加代码
//结束添加代码
return ret;
}
string& operator+=(const string &src) {
//TODO5:运算符+= //开始添加代码
//结束添加代码
return *this;
}
bool operator==(const string &str) const {
//TODO5:运算符== //开始添加代码
//结束添加代码
}
void Reverse() {
//TODO5:字符串反转 //开始添加代码
//结束添加代码
}
void Sort() {
//TODO6:字符串从小到大排序 //开始添加代码
//结束添加代码
}
private:
char *m_data;
int m_length;
};
int main() {
//构造函数
string str1 = "abcde"; string str2("12345");
//拷贝构造函数
string str3 = str1;
std::cout << (str3 == str1) << std::endl;
//拷贝构造函数
string str4(str2);
std::cout << (str2 == str4) << std::endl;
//+ 运算符
string str5 = str1 + str2;
std::cout << (str5 == "abcde12345") << std::endl;
std::cout << (str5.size() == str1.size() + str2.size()) << std::endl;
//+= 运算符
str5 += str1;
std::cout << (str5 == "abcde12345abcde") << std::endl;
//反转
string str6 = "12345678";
str6.Reverse();
std::cout << (str6 == "87654321") << std::endl;
//排序
string str7 = "202008131617";
str7.Sort();
std::cout << (str7 == "000111223678") << std::endl; return 0;
}
输出描述: 输出用例的结果
输入样例: null