C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能:
(1)string s = “吉林大学”;
(2)string t = s;
(3)string m; m = t;
(4)m.legnth() 函数测量字符串的长度
(5)m.cat(string const &)连接字符串
class string {
public:
string():data(nullptr),size(0){}
string(const char* str) {
size = strlen(str);
data = new char[size + 1];
strcpy(data, str);
}
string(const string& other) {
size = other.size;
data = new char[size + 1];
strcpy(data, other.data);
}
~string() {
delete[] data;
}
string& operator=(const string& other) {
if (&other != this) {
delete[] data;
size = other.size;
data = new char[size + 1];
strcpy(data, other.data);
}
}
int length() const {
return size;
}
string& cat(const string&other) {
char* newdata = new char[size + other.size + 1];
strcpy(newdata, data);
strcat(newdata, other.data);
delete[] data;
data = newdata;
size += other.size;
return *this;
}
private:
char* data;
int size;
};