c++ string的简单实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++ 的`std::string` 是一个非常强大且灵活的类,用于处理字符串。
下面是一个非常简单的`std::string` 实现,只包括一些基本的功能,例如构造函数、添加字符、获取长度、打印字符串等。
```cpp
#include <iostream>
#include <cstring>
class SimpleString {
private:
char* data;
int length;
public:
// 默认构造函数
SimpleString() {
data = new char[1];
data[0] = '\0';
length = 0;
}
// 带一个字符的构造函数
SimpleString(char c) {
data = new char[2];
data[0] = c;
data[1] = '\0';
length = 1;
}
// 带一个字符串的构造函数
SimpleString(const char* str) {
length = strlen(str);
data = new char[length + 1];
strcpy(data, str);
}
// 拷贝构造函数
SimpleString(const SimpleString& other) { length = other.length;
data = new char[length + 1];
strcpy(data, other.data);
}
// 析构函数
~SimpleString() {
delete[] data;
}
// 添加一个字符到字符串末尾
void push_back(char c) {
char* new_data = new char[length + 2]; strcpy(new_data, data);
new_data[length] = c;
new_data[length + 1] = '\0';
delete[] data;
data = new_data;
length++;
}
// 获取字符串长度
int size() const {
return length;
}
// 打印字符串
void print() const {
std::cout << data << std::endl;
}
};
```
这个简单的`SimpleString` 类实现了最基本的字符串功能。
但是,请注意,这个实现没有包括一些高级的功能,例如支持查找、替换、子字符串、比较等操作,也没有考虑一些复杂的情况,例如内存管理、异常处理等。
在实际的开发中,我们通常会使用C++ 标准库中的`std::string`,它提供了更全面和高效的操作。