This commit is contained in:
Light-City
2020-04-06 00:57:02 +08:00
parent f97c156cc4
commit a4d828bb4c
120 changed files with 4413 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>String<6E><67>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>+=<3D><>==<3D><>!=<3D><><<3C><>><3E><>>=<3D><>[ ]<5D><><EFBFBD><EFBFBD><EFBFBD>
#include <iostream>
#include <cstring>
using namespace std;
class String {
private:
int length; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char *sPtr; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
void setString( const char *s2);
friend ostream &operator<<(ostream &os, const String &s);
friend istream &operator>>(istream &is, String &s); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
String( const char * = "" );
const String &operator=(const String &R); //<2F><><EFBFBD>ظ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =
const String &operator+=(const String &R); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +=
bool operator==(const String &R); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱȽ<C8B1> ==
bool operator!=(const String &R); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2>ȱȽ<C8B1> !=
bool operator!() ; //<2F>ж<EFBFBD><D0B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
bool operator<(const String &R) const; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڱȽ<DAB1> <
bool operator>(const String &R); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ڱȽ<DAB1> >
bool operator>=(const String &R); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ڵ<EFBFBD><DAB5>ڱȽ<DAB1>
char &operator[](int); //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>
~String();
};
const String &String::operator+=(const String &R) {
char *temp = sPtr;
length += R.length;
sPtr = new char[length+1];
strcpy(sPtr,temp );
strcat(sPtr,R.sPtr );
delete [] temp;
return *this;
}
bool String::operator==(const String &R){return strcmp(sPtr,R.sPtr)==0;}
bool String::operator!=(const String & R){return !(*this==R);}
bool String::operator!(){return length ==0;}
bool String::operator<(const String &R)const{return strcmp(sPtr,R.sPtr)<0;}
bool String::operator>(const String &R){return R<*this;}
bool String::operator>=(const String &R){return !(*this<R);}
char &String::operator[](int subscript){return sPtr[subscript];}
int main(){
String s1("happy"),s2("new year"),s3;
cout << "s1 is " << s1 << "\ns2 is " << s2 << "\ns3 is " << s3
<< "\n<EFBFBD>Ƚ<EFBFBD>s2<EFBFBD><EFBFBD>s1:"
<< "\ns2 ==s1<73><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " << ( s2 == s1 ? "true" : "false")
<< "\ns2 != s1<73><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " << ( s2 != s1 ? "true" : "false")
<< "\ns2 > s1<73><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " << ( s2 > s1 ? "true" : "false")
<< "\ns2 < s1<73><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " << ( s2 < s1 ? "true" : "false")
<< "\ns2 >= s1<73><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " << ( s2 >= s1 ? "true" : "false");
cout << "\n\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>s3<EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><EFBFBD>: ";
if (!s3){
cout << "s3<EFBFBD>ǿմ<EFBFBD>"<<endl; //L3
cout<<"<EFBFBD><EFBFBD>s1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>s3<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD>";
s3 = s1;
cout << "s3=" << s3 << "\n"; //L5
}
cout << "s1 += s2 <20>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ǣ<EFBFBD>s1="; //L6
s1 += s2;
cout << s1; //L7
cout << "\ns1 += to you <20>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ǣ<EFBFBD>"; //L8
s1 += " to you";
cout << "s1 = " << s1 <<endl; //L9
s1[0] = 'H';
s1[6] = 'N';
s1[10] = 'Y';
cout << "s1 = " << s1 << "\n"; //L10
system("pause");
return 0;
}