第五周作業

2021-08-03 11:04:59 字數 3529 閱讀 6493

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

描述寫乙個mystring 類,使得下面程式的輸出結果是:

1. abcd-efgh-abcd-

2. abcd-

3.4. abcd-efgh-

5. efgh-

6. c

7. abcd-

8. ijal-

9. ijal-mnop

10. qrst-abcd-

11. abcd-qrst-abcd- uvw xyz

about

bigme

take

abcd

qrst-abcd-

要求:mystring類必須是從c++的標準類string類派生而來。提示1:如果將程式中所有 「mystring」 用」string」 替換,那麼題目的程式中除了最後兩條語句編譯無法通過外,其他語句都沒有問題,而且輸出和前面給的結果吻合。也就是說,mystring類對 string類的功能擴充只體現在最後兩條語句上面。提示2: string類有乙個成員函式 string substr(int start,int length); 能夠求從 start位置開始,長度為length的子串

程式如下:

#include 

#include

#include

using

namespace

std;

// 在此處補充你的**

int comparestring( const

void * e1, const

void * e2)

int main() ;

cout

<< "1. "

<< s1 << s2 << s3<< s4<< endl;

s4 = s3; s3 = s1 + s3;

cout

<< "2. "

<< s1 << endl;

cout

<< "3. "

<< s2 << endl;

cout

<< "4. "

<< s3 << endl;

cout

<< "5. "

<< s4 << endl;

cout

<< "6. "

<< s1[2] << endl;

s2 = s1; s1 = "ijkl-";

s1[2] = 'a' ;

cout

<< "7. "

<< s2 << endl;

cout

<< "8. "

<< s1 << endl;

s1 += "mnop";

cout

<< "9. "

<< s1 << endl;

s4 = "qrst-" + s2;

cout

<< "10. "

<< s4 << endl;

s1 = s2 + s4 + " uvw " + "xyz";

cout

<< "11. "

<< s1 << endl;

qsort(sarray,4,sizeof(mystring), comparestring);

for( int i = 0;i < 4;++i )

cout

<< sarray[i] << endl;

//輸出s1從下標0開始長度為4的子串

cout

<< s1(0,4) << endl;

//輸出s1從下標為5開始長度為10的子串

cout

<< s1(5,10) << endl;

return

0;}

原始碼:

#include 

#include

#include

using

namespace

std;

class mystring:public

string

//基類可以由派生類初始化,但派生類不可以由基類初始化

mystring(const mystring &a):string(a){}

mystring(const

string &a):string(a){}

mystring(){}

mystring &operator()(int start,int length)

/*這裡也可以這麼寫,下面這個與上面等價,上面這個返回的是乙個mystring的位址,實際上也就是mystring前面基類string的位址,和下面是等價的

string operator()(int start,int length)*/

};int comparestring( const

void * e1, const

void * e2)

}int main() ;

cout

<< "1. "

<< s1 << s2 << s3<< s4<< endl;

s4 = s3; s3 = s1 + s3;

cout

<< "2. "

<< s1 << endl;

cout

<< "3. "

<< s2 << endl;

cout

<< "4. "

<< s3 << endl;

cout

<< "5. "

<< s4 << endl;

cout

<< "6. "

<< s1[2] << endl;

s2 = s1; s1 = "ijkl-";

s1[2] = 'a' ;

cout

<< "7. "

<< s2 << endl;

cout

<< "8. "

<< s1 << endl;

s1 += "mnop";

cout

<< "9. "

<< s1 << endl;

s4 = "qrst-" + s2;

cout

<< "10. "

<< s4 << endl;

s1 = s2 + s4 + " uvw " + "xyz";

cout

<< "11. "

<< s1 << endl;

qsort(sarray,4,sizeof(mystring), comparestring);

for( int i = 0;i < 4;++i )

cout

<< sarray[i] << endl;

//輸出s1從下標0開始長度為4的子串

cout

<< s1(0,4) << endl;

//輸出s1從下標為5開始長度為10的子串

cout

<< s1(5,10) << endl;

return

0;}

魔獸2,待做

第五周作業

includeusing namespace std class student 用引數的初始化表對資料成員初始化。void max student arr void display private int num int score void student display void studen...

第五周作業

5求自然對數 include using namespace std int main cout e 6求圓周率 include include using namespace std int main cout pi約等於 7 include using namespace std int mai...

第五周作業

1 由使用者輸入銀行的英文簡稱,使用if else if 語句判斷並輸出銀行的中文全稱。要點 分別使用if else if 語句和switch語句 using system using system.collections.generic using system.linq using system...