自定義string類的簡單實現

2021-08-26 01:11:47 字數 2516 閱讀 4074

大家都知道c++中有乙個string類,由於正在學習類,就模仿c++中的string類寫了乙個自定義的string類,下面是自定義string類的簡單實現(fedora下實現)。

#ifndef __mystring__

#define __mystring__

#include using namespace std;

/***********************************

*class name:mystring

*creat time:2011.07.23

*last modify time:2011.07.23

*author:hahaya

***********************************/

class mystring

;#endif

#include #include #include #include "mystring.h"

using namespace std;

const int max_strlen = 200;

//建構函式和析構函式

////無參建構函式

mystring::mystring()

//帶乙個引數的建構函式

mystring::mystring(const char *str)

//拷貝建構函式,因為mystring類中有指標,故拷貝建構函式要重寫

mystring::mystring(const mystring &mystring)

//析構函式

mystring::~mystring()

//過載操作符

////過載=操作符

mystring& mystring::operator=(const mystring &mystring)

//過載+操作符

mystring& mystring::operator+(const mystring &mystring)

//過載+操作符

mystring& mystring::operator+(const char *str)

//過載+=操作符

mystring& mystring::operator+=(const mystring &mystring)

//過載+=操作符

mystring& mystring::operator+=(const char *str)

//過載==操作符

bool mystring::operator==(const mystring &mystring)

else

}//過載==操作符

bool mystring::operator==(const char *str)

else

}//過載!=操作符

bool mystring::operator!=(const mystring &mystring)

else

}//過載!=操作符

bool mystring::operator!=(const char *str)

else

}//過載操作符

char mystring::operator(int position)

//過載》操作符

//過載》操作符必須用友元函式,因為istream物件會用到mystring物件的私有成員str

istream& operator>>(istream &is, mystring &mystring)

//過載《操作符

ostream& operator<

//類方法

////求字串的長度

int mystring::length()

//將字串轉化成大寫

void mystring::uppercase()

}}//將字串轉化成小寫

void mystring::lowercase()}}

#include #include "mystring.h"

using namespace std;

int main()

if(str2 != str1)

//str4字串為world,str3串現在為helloworld

mystring str4("world");

str3 += str4;

cout << str3 << endl;

//輸出字串str4的第乙個字母

cout << "str4字串的第乙個字母為:" << str4[0] << endl;

//把字串str4的所有字母大寫

str4.uppercase();

cout << "str4所有字母大寫為:" << str4 << endl;

//把字串str4的所有字母小寫

str4.lowercase();

cout << "str4所有字母小寫為:" << str4 << endl;

return 0;

}

程式執行截圖

C 實現自定義string類

在一些c 筆試題裡,會有這樣一道題,那就是讓你自己實現乙個簡單的string類。自己在面試的時候就遇到過這個題。在這裡說一下自己是怎麼做的。主要包含一些基本的操作,建構函式 拷貝建構函式和析構函式。pragma once include using namespace std class mystr...

自定義string類

在學習c 過程中,相比起使用char 或者是char陣列,使用 string 類對字串進行操作要方便快速很多。string 並不是c 的基本資料型別,它實際上是乙個類,那麼這個類具體是怎麼實現對字串的操作的呢?如何去自定義乙個類去實現string類同樣的效果呢?首先,先列舉一些 string 類可以...

自定義string類

所需知識點 strcpy arg1,arg2 會把arg2的內容賦值給arg1,直到 0 為止,複製結束後會在arg1後加乙個 0 strlen 返回字串長度,只會返回 0 前字串的長度,如 123 0qweqr 返回值為3 std cin 遇到空格或回車符就結束輸入,遇到回車或eof會讀入 std...