请定义一个 `MyString` 类,提供一些常见的字符串操作方法,例如字符串拼接、判断字符串相等、截取子字符串、获取字符串长度以及显示字符串等。这些方法可以通过重载运算符和调用 `string` 类的成员函数来实现。
时间: 2024-02-11 21:05:24 浏览: 23
好的,以下是一个简单的 `MyString` 类的定义,它提供了一些常见的字符串操作方法:
```c++
#include <iostream>
#include <string>
class MyString {
public:
MyString() {} // 默认构造函数
MyString(const std::string& str) : str_(str) {} // 接受 std::string 的构造函数
MyString(const char* str) : str_(str) {} // 接受 C 风格字符串的构造函数
// 字符串拼接
MyString operator+(const MyString& rhs) const {
return MyString(str_ + rhs.str_);
}
// 判断字符串相等
bool operator==(const MyString& rhs) const {
return str_ == rhs.str_;
}
// 截取子字符串
MyString substr(int start, int len) const {
return MyString(str_.substr(start, len));
}
// 获取字符串长度
int length() const {
return str_.length();
}
// 显示字符串
friend std::ostream& operator<<(std::ostream& os, const MyString& str) {
os << str.str_;
return os;
}
private:
std::string str_;
};
```
在这个类中,我们定义了三个构造函数,分别接受默认值、`std::string` 类型和 C 风格字符串,可以根据需要进行转换。同时,我们重载了加法运算符 `+`,判断相等运算符 `==`,以及输出运算符 `<<`,方便用户进行字符串拼接、比较和显示。此外,我们也提供了截取子字符串和获取字符串长度的函数。这些方法都基于 `std::string` 类的成员函数实现,因此具有较高的可靠性和性能。