手写string字符串
时间: 2023-09-19 18:11:10 浏览: 42
下面是一个简单的手写字符串实现,可以用来存储和操作字符串:
```c++
#include <iostream>
class String {
public:
// 构造函数
String() {
length = 0;
data = new char[length + 1];
data[0] = '\0';
}
String(const char* str) {
length = strlen(str);
data = new char[length + 1];
strcpy(data, str);
}
// 拷贝构造函数
String(const String& other) {
length = other.length;
data = new char[length + 1];
strcpy(data, other.data);
}
// 析构函数
~String() {
delete[] data;
}
// 重载赋值运算符
String& operator=(const String& other) {
if (this != &other) {
delete[] data;
length = other.length;
data = new char[length + 1];
strcpy(data, other.data);
}
return *this;
}
// 重载下标运算符
char& operator[](int index) {
return data[index];
}
const char& operator[](int index) const {
return data[index];
}
// 获取长度
int getLength() const {
return length;
}
// 获取字符串
const char* getData() const {
return data;
}
private:
int length;
char* data;
};
int main() {
String str1("Hello");
String str2 = str1;
String str3;
str3 = str2;
std::cout << str1.getData() << std::endl;
std::cout << str2.getData() << std::endl;
std::cout << str3.getData() << std::endl;
str2[0] = 'h';
std::cout << str2.getData() << std::endl;
return 0;
}
```
上面这个实现只是一个简单的示例,实际上字符串的实现非常复杂,还需要考虑内存分配、动态扩容、编码方式等问题。在实际开发中,我们通常会使用标准库提供的字符串类(如 C++ 中的 std::string)。