2.1作业

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

class My_string

{

char* data;

int size;

public:

My_string();

My_string(int,char);

My_string(const char*);

My_string(const My_string&);

~My_string();

My_string& operator=(const My_string&);

char* c_str();

int length();

bool empty();

char& at(int);

};

using namespace std;

My_string::My_string():size(15)

{

data=new char[size]{0};

}

My_string::My_string(int n,char c)

{

data=new char[n+1];

size=n;

for(int i=0;i<n;i++)

{

data[i]=c;

}

data[n]='\0';

}

My_string::My_string(const char* s)

{

int len=strlen(s);

size=len;

data=new char[len+1];

for(int i=0;i<len;i++)

{

data[i]=s[i];

}

data[len]='\0';

}

My_string::My_string(const My_string& b)

{

size=b.size;

data=new char[size+1];

strcpy(data,b.data);

data[size]='\0';

}

My_string::~My_string()

{

delete[]data;

}

My_string& My_string::operator=\

(const My_string& b)

{

size=b.size;

strcpy(data,b.data);

return *this;

}

char* My_string::c_str()

{

return data;

}

int My_string::length()

{

return size;

}

bool My_string::empty()

{

if(strlen(data)==0)

return true;

else

return false;

}

char& My_string::at(int n)

{

if(n<0||n>size)

{

cout<<"out of range"<<endl;

return data[0];

}

return data[n];

}

int main()

{

My_string m1;

m1="1234";

My_string m2(m1);

cout<<m2.length()<<endl;

m2.at(2)='5';

My_string m3;

m3=m2;

cout<<m3.c_str()<<endl;

cout<<m3.empty()<<endl;

}

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6