#include <iostream>
using namespace std;
class MyString{
private:
char *str;
public:
MyString(const char* ss){
int jj = 0;
while(ss[jj]!='\0'){
jj++;
}
int ii;
str = new char[jj];
for(ii=0;ii<jj;ii++){
str[ii] = ss[ii];
}
str[ii] = '\0';
}
MyString(){}
MyString(MyString& ms){
int jj = 0;
while(ms.str[jj]!='\0'){
jj++;
}
int ii;
str =new char[jj];
for(ii=0;ii<jj;ii++){
str[ii] = ms.str[ii];
}
str[ii] = '\0';
}
/*MyString(const char* pp){
int jj = 0;
while(pp[jj]!='\0'){
jj++;
}
int ii;
str = new char[jj];
for(ii=0;ii<jj;ii++){
str[ii] = pp[ii];
}
str[ii] = '\0';
}*/
void print(){
int ii = 0;
while(str[ii]!='\0'){
ii++;
}
int jj = 0;
while(jj<ii){
if(str[jj]!='*'){
cout<<str[jj];
}
jj++;
}
cout<<endl;
}
friend MyString operator+(MyString &ms,const char* pp);
friend MyString operator-(MyString &ms,const char* pp);
friend int operator>(MyString &ms,const char* pp);
friend ostream & operator << (ostream &os,const char *s);
char* operator=(const char* pp);
//friend char* operator+(const char* p1,const char*p2);
};
char* MyString::operator=(const char* pp){
int jj = 0;
while(pp[jj]!='\0'){
jj++;
}
int ii;
this->str = new char[jj];
for(ii=0;ii<jj;ii++){
this->str[ii] = pp[ii];
}
this->str[ii] = '\0';
//cout<<this->str;
return this->str;
}
MyString operator+(MyString &ms,const char* pp){
int len1 = 0;
int len2 = 0;
while(ms.str[len1]!='\0'){
len1++;
}
while(pp[len2]!='\0'){
len2++;
}
char ss[len1];
int ll = 0;
while(ms.str[ll]!='\0'){
ss[ll] = ms.str[ll];
ll++;
}
ss[ll] = '\0';
int len = len1 + len2;
int ii;
delete ms.str;
ms.str = new char[len];
for(ii = 0;ii<len1;ii++){
ms.str[ii] = ss[ii];
}
int plen = 0;
for(ii = len1;ii<len;ii++){
ms.str[ii] = pp[plen];
plen++;
}
ms.str[len] = '\0';
return ms;
}
MyString operator-(MyString &ms,const char* pp){
int len1 = 0;
int len2 = 0;
int ii,jj;
ii = jj =0;
while(ms.str[len1]!='\0'){
len1++;
}
while(pp[len2]!='\0'){
len2++;
}
while(pp[ii]!='\0'){
for(jj = 0;jj<len1;jj++){
if(ms.str[jj]==pp[ii]){
ms.str[jj] ='*';
break;
}
}
ii++;
}
return ms;
}
int operator>(MyString &ms,const char* pp){
/*int len1 = 0;
int len2 = 0;
int ii,jj;
ii = jj =0;
while(ms.str[len1]!='\0'){
len1++;
}
while(pp[len2]!='\0'){
len2++;
}
if(ms.str[0]>pp[0]){
cout<<"1"<<endl;
}
else if(ms.str[0]<pp[0]){
cout<<"-1"<<endl;
}
else
{
}*/
int ret = 0;
while(!(ret=*(unsigned char *)ms.str-*(unsigned char *)pp)&&ms.str&&*pp)
{
++ms.str;
++pp;
if(ret<0)
ret = -1;
else if(ret>0)
ret = 1;
}
cout<<ret<<endl;
return ret;
}
int main(){
cout<<"New>>>>>>"<<endl;
MyString dd;
MyString hhh("hhhh");
dd = "b";
dd = dd+"fffff";
MyString ss = dd;
dd.print();
ss.print();
ss = ss - "a";
//cout<<<<endl;
dd > "a";
dd.print();
/*MyString hh = "hello"+"hhhh";
hh.print();*/
return 0;
}
myString
最新推荐文章于 2023-09-11 21:36:15 发布