2 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個贊
我還加了一個>>重載 #include#includeusing namespace std;/*每個成員函數(shù)都是只歸對象使用的,當(dāng)一個對象調(diào)用成員時,這里面的成員只歸該對象所有,只有該對象可以修改*/class String{public: String(); String(char *ch); /*復(fù)制構(gòu)造函數(shù)在用 該對象的一個對象初始化另一個對象的時候 需要調(diào)用復(fù)制構(gòu)造函數(shù)*/ String(const String &); //復(fù)制構(gòu)造函數(shù) ~String(){ cout << "正在執(zhí)行析構(gòu)函數(shù)!" << endl; } friend ostream &operator << (ostream &out, String &a) { out < a.p; return out; } friend istream &operator >> (istream &in, String &a) { in >> a.p; return in; }private: String(unsigned short int length); int len; char *p;};String::String(){ cout << "調(diào)用默認(rèn)構(gòu)造函數(shù)!" << endl; len = 0; p = new char; *p = '\0';}String::String(char *ch){ cout << "正在執(zhí)行帶一個參數(shù)*ch的構(gòu)造函數(shù)" << endl; len = strlen(ch); p = new char[len + 1]; for (int i = 0; i < len; i++) { p[i] = ch[i]; } p[len] = '\0';}String::String(unsigned short int length){ cout << "正在執(zhí)行帶一個參數(shù)unsigned short int 的構(gòu)造函數(shù)" << endl; len = length; p = new char[length + 1]; //這里的p是對象str的成員 for (int i = 0; i <= length; i++) p[i] = '\0';}int main(){ String str("美好世界!"); cout << str << endl; return 0;}

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個贊
#include <stdio.h>int MyStrcmp(char *p1,char *p2) {
int i = 0;
for(;((p1[i] != '\0') && (p2[i] != '\0'));i++) {
if(p1[i] > p2[i]) return 1;
else if(p1[i] < p2[i]) return -1;
}
if((p1[i] == '\0') && (p2[i] == '\0')) return 0;
if(p1[i] == '\0') return -1;
return 1;
}int main() {
int cmpres;
char s1[50];
char s2[50];
printf("Enter s1 you want to estimate:");
scanf("%s",s1);
printf("Enter s2 you want to estimate:");
scanf("%s",s2);
cmpres = MyStrcmp(s1,s2);
if(cmpres > 0) printf("s1 > s2\n\n");
else if(cmpres == 0) printf("s1 = s2\n\n");
else printf("s1 < s2\n\n");
return 0;
}
添加回答
舉報