#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class my_string
{
private:
char *str;
int len;
public:
my_string(){cout<<"wucan gouzhao"<<endl;}
my_string(const char* s)
{
len = strlen(s);
str = new char[len+1];
for(int i = 0;i<len;i++)
{
*(str+i) = *(s+i);
}
cout<<"youcan gouzao"<<endl;
}
my_string(const my_string &other)
{
len = other.len;
str = new char[len+1];
for(int i = 0;i<len;i++)
{
*(str+i) = *(other.str +i);
}
cout<<"copy gouzao"<<endl;
}
my_string & operator=(const my_string &other)
{
cout<<"copy fuzhi"<<endl;
len = other.len;
str = new char[len+1];
for(int i = 0;i<len;i++)
{
*(str+i) = *(other.str +i);
}
return *this;
}
~my_string()
{
delete []str;
cout<<"xigou hanshu"<<endl;
}
void show()
{
for(int i=0;i<len;i++)
{
cout<<*(str+i);
}
cout<<endl;
}
bool my_empty()
{
if(len == 0)
return true;
else
return false;
}
int my_size()
{
return len;
}
char *my_str()
{
return str;
}
};
int main()
{
my_string s;
my_string s1("hello");
s = s1;
my_string s2 = s1;
s.show();
s1.show();
s2.show();
cout<<s.my_empty()<<'\t'<<s.my_size()<<endl;
printf("%s\n",s.my_str());
return 0;
}