#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 是表示字串的類 該類的介面與常規容器的介面基本相...