在一些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...