仿照string类,写一个my_string类
#include <iostream>
#include <cstring>
using namespace std;
class my_string
{
public :
my_string()
{
len=0;
str=NULL;
}
~my_string()
{
if(str!=NULL)
{
delete []str;
}
}
my_string(char *s)
{
len=mystrlen(s);
str=new char[len+1];
mystrcpy(str,s);
}
char* mystrcpy(char* str,char* s)
{
while(*s!='\0')
{
*str=*s;
s++;
str++;
}
*str='\0';
return str;
}
int mystrlen(char *s)
{
char* ch=s;
while(*ch!='\0')
{
ch++;
}
return ch-s;
}
char *mystr()
{
return (char*)str;
}
my_string(const my_string& o)
{
len=o.len;
str=new char[o.len+1];
mystrcpy(str,o.str);
}
my_string& operator=(const my_string& R)
{
if(this!=&R)
{
this->len = R.len;
this->str = new char[len+1];
mystrcpy(str,R.str);
}
return *this;
}
void display1()
{
cout<<mystr()<<'\t'<<len<<endl;
}
private :
char* str;
int len;
};
int main()
{
my_string m1;
my_string m2("hqyj1");
m2.display1();
my_string m3=m2;
m3.display1();
my_string m4("hqyj"),m5("shanghai");
m4=m5;
m4.display1();
cout << "Hello World!" << endl;
return 0;
}