OPERATOR +代码如下:
my_string operator+(const my_string &R)//拼接字符串
{
char temp[128]; //先利用strcpy 拼接获得两个字符串的长度
strcpy(temp,this->cstr);
strcat(temp,R.cstr);
this->len=strlen(temp);
delete []cstr; //在释放原来的空间
this->cstr = new char[len+1]; //重新申请新的空间
strcpy(this->cstr,temp); //再把之前拼接的值复制过来
return *this;
代码如下:
//比较字符串大小
int operator<(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
//判断是否等于
int operator==(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
//判断是否小于等于
int operator<=(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
//判断是否大于等于
int operator>=(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
//判断是否大于
int operator>(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
//判断是否不等于
int operator!=(const my_string &R)const
{
return strcmp(this->cstr,R.cstr);
}
现象:<
<< >>:
ostream &operator<<(ostream &L, const my_string &R)
{
L<<R.cstr<<R.len<<endl;
return L;
}
istream &operator>>(istream &L,my_string &R)
{
if(R.cstr==NULL)
{
delete []R.cstr;
R.cstr = new char[128];
L>>R.cstr;
R.len = strlen(R.cstr);
}
else
{
R.cstr = new char[128];
L>>R.cstr;
R.len = strlen(R.cstr);
}
return L;
}