请设计实现自己的字符串类 class MyString char * value ; //构造函数 //拷贝构造函数//析构函数 //赋值函数,如 setValue ( char * newvalue )//返回有效字符的个数 //返回某个位置的字符 //替换某个位置的字符 类中列出的方法的返回值,参数等自行设计实现。
时间: 2023-05-29 11:04:11 浏览: 89
构造一个对象的副本——深拷贝-析构函数和拷贝构造函数
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;
length = 0;
}
// 赋值函数
void setValue(char* newvalue) {
delete[] value;
length = strlen(newvalue);
value = new char[length + 1];
strcpy(value, newvalue);
}
// 返回有效字符的个数
int getLength() {
return length;
}
// 返回某个位置的字符
char getCharAt(int index) {
if (index < 0 || index >= length) {
return '\0';
}
return value[index];
}
// 替换某个位置的字符
void replaceCharAt(int index, char newchar) {
if (index >= 0 && index < length) {
value[index] = newchar;
}
}
};
阅读全文