请设计一个字符串类Mystring, 通过该类实现与字符串相关的各种操作。 字符串类的主要功能包括字符串连接、字符串比较、字符串增删改查操作、字符串反转操作、字符串长度计算等。设计构造函数与析构函数,功能实现2-3个,设计实现main函数完成对象的定义和功能的调用
时间: 2024-10-20 12:18:26 浏览: 46
在设计一个名为`MyString`的字符串类时,我们可以考虑以下几个关键部分:
```cpp
#include <iostream>
#include <string>
class MyString {
public:
// 构造函数
explicit MyString(const std::string& str = "") : value(str) {}
// 析构函数
~MyString() {}
// 功能1:字符串连接
MyString operator+(const MyString& other) const {
return MyString(value + other.value);
}
// 功能2:字符串比较
bool compare(const MyString& other) const {
return value == other.value;
}
// 功能3:字符串反转
MyString reverse() const {
std::string reversed_value = value;
std::reverse(reversed_value.begin(), reversed_value.end());
return MyString(reversed_value);
}
private:
// 存储字符串的成员变量
std::string value;
// 非成员函数 - 计算字符串长度
int length() const {
return value.length();
}
};
int main() {
// 定义 MyString 对象
MyString s1("Hello");
MyString s2("World");
// 调用功能1:字符串连接
MyString combined = s1 + " " + s2;
std::cout << "Combined string: " << combined.value << std::endl;
// 调用功能2:字符串比较
if (s1.compare(s2)) {
std::cout << "s1 is not equal to s2" << std::endl;
} else {
std::cout << "s1 is equal to s2" << std::endl;
}
// 调用功能3:字符串反转
MyString reversed_s1 = s1.reverse();
std::cout << "Reversed s1: " << reversed_s1.value << std::endl;
// 调用非成员函数 - 获取字符串长度
int len = s1.length();
std::cout << "Length of s1: " << len << std::endl;
return 0;
}
```
这个`MyString`类包含了字符串连接、比较以及反转的功能,并提供了一个简单的`main`函数来演示如何使用这些方法。注意,这里我们省略了`length()`作为非成员函数来强调其不是类的核心操作,但在实际项目中它可能会作为成员函数。此外,`std::string`库已经为我们处理了许多底层的字符串操作,如连接、比较等。
阅读全文
相关推荐


















