C 學習筆記(二十九 ) 之string容器

2021-10-08 08:58:18 字數 4967 閱讀 5173

老規矩–妹妹鎮樓:

c++標準庫定義了一種string類,定義在標頭檔案 string 中。

1.char是乙個指標,string是乙個類string封裝了char,管理這個字串,是乙個char*型的容器。

2.string封裝了很多實用的成員方法查詢find,拷貝copy,刪除delete 替換replace,插入insert

3.不用考慮記憶體釋放和越界 string管理char*所分配的記憶體。每一次string的複製,取值都由string類負責維護,不用擔心複製越界和取值越界等。

1. string的建構函式

string()

;//建立乙個空的字串 例如: string str;

string

(const string& str)

;//使用乙個string物件初始化另乙個string物件

string

(const

char

* s)

;//使用字串s初始化

string

(int n,

char c)

;//使用n個字元c初始化

2. string的基本賦值操作

string&

operator=(

const

char

* s)

;//char*型別字串 賦值給當前的字串

string&

operator=(

const string &s)

;//把字串s賦給當前的字串

string&

operator=(

char c)

;//字元賦值給當前的字串

string&

assign

(const

char

*s);

//把字串s賦給當前的字串

string&

assign

(const

char

*s,int n)

;//把字串s的前n個字元賦給當前的字串

string&

assign

(const string &s)

;//把字串s賦給當前字串

string&

assign

(int n,

char c)

;//用n個字元c賦給當前字串

string&

assign

(const string &s,

int start,

int n)

;//將s從start開始n個字元賦值給字串

3. string訪問字元操作當訪問越界時,會直接掛掉,at會丟擲異常。

char

&operator

(int n)

;//通過方式取字元

char&at

(int n)

;//通過at方法獲取字元

4. string拼接操作

string&

operator+=

(const string& str)

;//過載+=操作符

string&

operator+=

(const

char

* str)

;//過載+=操作符

string&

operator+=

(const

char c)

;//過載+=操作符

string&

(const

char

*s);

//把字串s連線到當前字串結尾

string&

(const

char

*s,int n)

;//把字串s的前n個字元連線到當前字串結尾

string&

(const string &s)

;//同operator+=()

string&

(const string &s,

int pos,

int n)

;//把字串s中從pos開始的n個字元連線到當前字串結尾

string&

(int n,

char c)

;//在當前字串結尾新增n個字元

5. string查詢和替換

int

find

(const string& str,

int pos =0)

const

;//查詢str第一次出現位置,從pos開始查詢

intfind

(const

char

* s,

int pos =0)

const

;//查詢s第一次出現位置,從pos開始查詢

intfind

(const

char

* s,

int pos,

int n)

const

;//從pos位置查詢s的前n個字元第一次位置

intfind

(const

char c,

int pos =0)

const

;//查詢字元c第一次出現位置

intrfind

(const string& str,

int pos = npos)

const

;//查詢str最後一次位置,從pos開始查詢

intrfind

(const

char

* s,

int pos = npos)

const

;//查詢s最後一次出現位置,從pos開始查詢

intrfind

(const

char

* s,

int pos,

int n)

const

;//從pos查詢s的前n個字元最後一次位置

intrfind

(const

char c,

int pos =0)

const

;//查詢字元c最後一次出現位置

string&

replace

(int pos,

int n,

const string& str)

;//替換從pos開始n個字元為字串str

string&

replace

(int pos,

int n,

const

char

* s)

;//替換從pos開始的n個字元為字串s

6. string比較操作compare函式在》時返回 1,《時返回 -1,==時返回 0。比較區分大小寫,比較時參考字典順序,排越前面的越小。大寫的a比小寫的a小。

int

compare

(const string &s)

const

;//與字串s比較

intcompare

(const

char

*s)const

;//與字串s比較

7. string子串

string substr

(int pos =0,

int n = npos)

const

;//返回由pos開始的n個字元組成的字串

8. string插入和刪除操作

string&

insert

(int pos,

const

char

* s)

;//插入字串

string&

insert

(int pos,

const string& str)

;//插入字串

string&

insert

(int pos,

int n,

char c)

;//在指定位置插入n個字元c

string&

erase

(int pos,

int n = npos)

;//刪除從pos開始的n個字元

9. string和c風格字串的轉換在c++中存在乙個從const char*到string的隱式型別轉換,卻不存在從乙個string物件到c_string的自動型別轉換。對於string型別的字串,可以通過c_str()函式返回string物件對應的c_string.

//string 轉 char*

string str =

"itcast"

;const

char

* cstr = str.

c_str()

;//char* 轉 string

char

* s =

"itcast"

;string str

(s);

C 學習(二十九)內聯inline

內聯函式適用能夠快速執行的函式,此時使用內聯省去了函式的呼叫開銷。內聯函式像巨集一樣都是在編譯期展開,內嵌到呼叫處。inline省去普通函式的壓棧和call,以空間換時間,僅僅省去了函式呼叫的開銷 當函式體比較小的時候,內聯該函式可以令目標 更加高效.對於訪問函式以及其它函式體比較短,效能關鍵的函式...

二十九 CSS之浮動float

css定位機制 1.普通流 標準流 2.浮動 3.絕對定位 一 普通流 預設狀態,元素自動從左往右或者從上往下 塊元素 1.獨佔一行 2.可以設定寬 高 3.如果不設定寬,預設為容器的100 4.常見的塊級元素標籤 div p h1 h6 ul ol li dl dt dd 行內元素 1.與其他元素...

Swift學習筆記(二十九) 函式的使用1

1 引數型別為可選型optional.如果引數為空,則輸出?後面的字串,否則輸出可選型的引數值。import foundation func sayhello name string?string var nickname string?nickname jack println sayhello ...