C 實現自定義string類

2021-10-02 17:41:07 字數 2167 閱讀 2692

在一些c++筆試題裡,會有這樣一道題,那就是讓你自己實現乙個簡單的string類。自己在面試的時候就遇到過這個題。在這裡說一下自己是怎麼做的。

主要包含一些基本的操作,建構函式、拷貝建構函式和析構函式。

#pragma once

#include

using

namespace std;

class

mystring

;

#include

"stdafx.h"

#include

"mystring.h"

mystring::

mystring

(int len)

else

//長度不為空時初始化新申請的記憶體

}mystring::

mystring

(const

char

* p)

else

//不為空時將p指向的內容賦值給新開闢的記憶體

}mystring::

mystring

(const mystring& s)

//拷貝建構函式

mystring::

~mystring()

//析構函式

}

到這裡簡單的string類就實現了,接下來是一些運算子的過載操作。

#pragma once

#include

using

namespace std;

class

mystring

;

//過載等號=操作符和

mystring& mystring::

operator=(

const

char

*p)if

(m_p ==

null

)else

return

*this;}

mystring& mystring::

operator=(

const mystring& s)

m_len = s.m_len;

m_p =

newchar

[m_len +1]

;strcpy

(m_p, s.m_p)

;return

*this;}

char

& mystring::

operator

(int index)

mystring mystring::

operator+(

const mystring &s)

const

//過載 == !=

bool mystring::

operator==(

const

char

* p)

const

else

}else

else}}

bool mystring::

operator==(

const mystring& s)

const

else

}bool mystring::

operator!=(

const

char

* p)

const

bool mystring::

operator!=(

const mystring& s)

const

//過載<>

int mystring::

operator

>

(const

char

* p)

int mystring::

operator

<

(const

char

* p)

int mystring::

operator

>

(const mystring& s)

int mystring::

operator

<

(const mystring& s)

至此乙個由自己編寫的簡單string類就實現了。

c 自定義string類

1.標頭檔案部分 define crt secure no warnings pragma once include includeusing namespace std class mystring 2.函式定義部分 include mystring.h mystring mystring mys...

自定義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...