《C 語言基礎》程式閱讀 字串類的設計

2021-09-23 17:47:48 字數 2432 閱讀 2954

閱讀下面的程式,領會其中用到的設計方案、技術手段與演算法。

/*對於要定義的字串類cmystring,

資料成員包括:

- 字串的長度;

- 指向字串第乙個字元的指標

成員函式包括:

- 不帶引數的建構函式;

- 帶乙個型別為const char *型別的引數(用於對字串初始化)的建構函式;

- 帶乙個const cmystring&型別的複製構造引數;

- 析構函式;

- strlen函式 (用於求字串的長度);

- int find(char c) (找出字元c在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含c,則返回-1);

- int find(const char *str1) ( 找出字串str1在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含字串str1,則返回-1),

- int find(const cmystring& str1) (找出字串str1在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含字串str1,則返回-1),

- int replace(char c1, char c2) (將本字串**現的所有字元c1用字元c2替換, 返回替換的次數);

- void replace(const char *str1, const char *str2) (將本字串中第一次出現的字串str1用字串str2替換);

- void display() (用於顯示字串)

對運算子+=等進行過載,例如,設str1和str2是兩個cmystring類的物件,

- 用str1[i]表示字串str1的下標為i的字元;

- str1+str2的結果是將str2連在str1的後面,並將結果仍然存放在 str1中;

- 用=表示賦值。

(2)編寫主函式,定義幾個cmystring類的物件,並利用鍵盤輸入字串的內容,程式設計驗證以上定義的所有函式。

*/#include #include #include using namespace std;

class cmystring

{private:

int m_nlen;

char *m_szstr;

public:

cmystring(void);

cmystring(const char *str);

cmystring(const cmystring& str1);

~cmystring(void);

int strlen(void);

int find(char c);

int find(const char *str1);

int find(const cmystring& str1);

int replace(char c1, char c2);

void replace(const char *str1, const char *str2);

char& operator(int i);

cmystring operator+(const cmystring& str1);

cmystring& operator=(const cmystring& str1);

void display()

{cout<=0)

{int len1=strlen(str1),len2=strlen(str2);

if (len1!=len2) //str1與str2長度不相等

{int len=m_nlen-len1+len2;

char *result=new char[len+1];

//求出cmystring物件從str1往後的字串將其存放與字串temp中

char *temp;

temp=new char[m_nlen-i-len1+1];

for (j=0; jm_nlen-1)

{cout<<"index out of range."<>str_1;不能輸入帶空格的字串

cin.getline(str_1,20,'\n');

cout<<"input the string to be finded:";

cin.getline(str_2,20,'\n');

cmystring str4(str_1),str5(str_2);

cout<>c1;

cout<<"input c2:";

cin>>c2;

cmystring str6(str_3);

cout<<"replace "<<'\''<>str_5;

cout<<"input the str2 you want to change to:";

cin>>str_6;

cmystring str7(str_4);

cout<<"replace first time of "<<"\""<

C語言基礎歸納 字串

字串 c 字串是位元組 char 型別 的一維陣列,以乙個0 位元組終結。c 中的常量字串,通過把字串的字元放置在雙引號 之間來編寫 1.a constant string 當編譯器在記憶體中建立乙個常量字串時,它自動在末尾新增0 位元組。但是,如果宣告了乙個用來儲存字串的char 陣列,在確定需要...

c語言基礎 字串陣列

在 c 語言中,字串實際上是使用null字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的使用字串陣列宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting ...

字串,QT字串類,c 字串類之間的轉換

1.std string轉換成qstring string std str abc qstring q str qstring fromstdstring std str 2.qstring轉換成std string qstring q str abc string q str.tostdstrin...