请设计实现自己的字符串类(不要直接用系统 的string) class MyString char* value; //构造函数 //拷贝构造函数 //析构函数 //赋值函数,如setValue(char*newvalue) //返回有效字符的个数 //返回某个位置的字符 //替换某个位置的字符 //选做:合并两个字符串,如 concat(MyString&) //选做:其他方法自行设计补充 类中列出的方法的返回值,参数等自行设计实 现。
时间: 2023-05-30 22:02:51 浏览: 143
s)
class MyString {
private:
char* value; // 存储字符串的指针
int length; // 字符串的长度
public:
// 默认构造函数
MyString() {
value = new char[1];
value[0] = '\0';
length = 0;
}
// 构造函数
MyString(const char* str) {
length = strlen(str);
value = new char[length + 1];
strcpy(value, str);
}
// 拷贝构造函数
MyString(const MyString& other) {
length = other.length;
value = new char[length + 1];
strcpy(value, other.value);
}
// 析构函数
~MyString() {
delete[] value;
}
// 赋值函数
void setValue(const char* newvalue) {
delete[] value;
length = strlen(newvalue);
value = new char[length + 1];
strcpy(value, newvalue);
}
// 返回有效字符的个数
int getLength() const {
return length;
}
// 返回某个位置的字符
char at(int index) const {
if (index < 0 || index >= length) {
throw "Index out of range";
}
return value[index];
}
// 替换某个位置的字符
void replace(int index, char ch) {
if (index < 0 || index >= length) {
throw "Index out of range";
}
value[index] = ch;
}
// 合并两个字符串
MyString concat(const MyString& other) const {
MyString result;
result.length = length + other.length;
result.value = new char[result.length + 1];
strcpy(result.value, value);
strcat(result.value, other.value);
return result;
}
};
阅读全文