#include
using namespace std;
class String{
protected:
char *s;
public:
String(){s=NULL;}//定义默认构造函数
String(char *str);//声明构造函数
String(const String &stri);//拷贝构造函数
~String();//析构函数
String operator=(String &str);//成员函数重载=
String operator+=(String &str);//成员函数重载+=
friend String operator+(String &str1,String &str2);//友元函数重载+
friend bool operator>(String &str1,String &str2);//友元函数重载>
friend bool operator>=(String &str1,String &str2);//友元函数重载>=
friend bool operator<(String &str1,String &str2);//友元函数重载<
friend bool operator<=(String &str1,String &str2);//友元函数重载<=
friend bool operator==(String &str1,String &str2);//友元函数重载==
friend bool operator!=(String &str1,String &str2);//友元函数重载!=
void display();
};
char* Stract(char *str1,char*str2)//自定义字符串连接函数
{
char *str;
int i,j;
int len1 = strlen(str1);
int len2 = strlen(str2);
int len = len1+len2;
str = new char(len+1);
strcpy(str,str1);
for(i=0,j=len1;i(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)>0) return true;
else{
return false;
}
}
bool operator>=(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)>=0) return true;
else{
return false;
}
}
bool operator<(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)<0) return true;
else{
return false;
}
}
bool operator<=(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)<=0) return true;
else{
return false;
}
}
bool operator==(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)==0) return true;
else{
return false;
}
}
bool operator!=(String &str1,String &str2)
{
if(strcmp(str1.s,str2.s)!=0) return true;
else{
return false;
}
}
void String::display()
{
cout<