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;
}