C string類的模擬實現

2021-10-05 18:35:23 字數 2856 閱讀 3617

#include

#include

using

namespace std;

class

string

iterator end()

const_iterator begin()

const

const_iterator end()

const

string

(const

char

* str ="")

//字串有'\0』 也可以寫成"\0"

:_str

(new

char

[strlen

(str)+1

])~string()

string

(const string&s)

:_str

(new

char

[s._size +1]

),_size

(s._size)

// 開 值一樣大的空間

,_capacity

(s._size)

//開 值一樣大的空間

const

char

*c_str()

string&

operator

=(string& s)

return

*this;}

const

char

&operator

(size_t pos)

const

void

push_back

(char c)

_str[_size]

= c;

_size++

; _str[_size]

='\0';}

void

reserve

(size_t n)

// 資料不夠,開空間

}void

(const

char

* str)

//方法一

strcpy

(_str + _size, str)

;//方法二

//for (int i = _size; i < _size + len; i++)

// _size +

= len;

_str[_size]

='\0';}

const string &

operator+=

(char ch)

const string&

operator+=

(const

char

* str)

const string&

operator+=

(const string& s)

void

insert

(size_t pos,

char ch)

int end = _size;

while

(end >=

(int

)pos)

_str[pos]

= ch;

++_size;

}void

insert

(size_t pos,

const

char

* str)

size_t end = _size + len;

while

(end >= pos + len)

while

(*str)

_size +

= len;

}bool

operator

>

(const string& s)

elseif(

*str1 <

*str2)

else}if

(*str1)

elseif(

*str2)

else

}bool

operator

<

(const string& s)

bool

operator==(

const string& s)

else}if

(*str1 ||

*str2)

return

false

;return

true;}

bool

operator

>=

(const string& s)

size_t size()

size_t capacity()

private

: size_t _size;

size_t _capacity;

char

* _str;

};

//實現乙個簡單的string 現**法

class

mystring

mystring

(const mystring& s)

:_str

(nullptr

)//delete釋放的那塊空間要置空

//寫法一:

mystring&

operator=(

const mystring& s)

return

*this;}

//寫法二

//s1 = s2

//s其實就是s2拷貝的乙份,就是s1想要的

//s出了作用域就s的_str被釋放了

mystring&

operator

=(mystring s)

};

C string類 模擬實現

define crt secure no warnings include include using namespace std namespace zyf iterator end mystring const char str size strlen str mystring s1 s2 my...

C string的模擬實現

define crt secure no warnings include include using namespace std class string iterator end const iterator begin const const iterator end const 預設無參構造...

C string類介面及模擬實現

c語言中,字串是以 0 結尾的一些字元的集合,為了操作方便,c標準庫中提供了一些str系列的庫函式,但是這些庫函式與字串是分離開的,而且底層空間需要使用者自己管理,稍不留神可能還會越界訪問。c 封裝了這些介面和操作,建立出string類 string 是表示字串的類 該類的介面與常規容器的介面基本相...