首頁 >後端開發 >C#.Net教程 >c++複習要點總結z之十二-STL string

c++複習要點總結z之十二-STL string

黄舟
黄舟原創
2017-01-16 11:55:571347瀏覽

1String概念

² string是STL的字串型,通常用來表示字串。而在使用string之前,字串通常是用char*表示的。 string與char*都可以用來表示字串,那麼二者有什麼差別呢。

string和char*的比較

² string是一個類別, char*是一個指向字元的指標。

string封裝了char*,管理這個字串,是一個char*型的容器。

² string不用考慮記憶體釋放和越界。

string管理char*所分配的記憶體。每一次string的複製,取值都由string類別負責維護,不用擔心複製越界、取值越界等。

² string提供了一系列的字串操作函數(這個等下會詳講)

查找find,拷貝copy,刪除erase,取代replace,插入insert

2string的預設建構子函數:

string(); //建構一個空的字串string s1。

² 拷貝建構子:

string(const string &str); //建構一個與str一樣的string。如strings1(s2)。

² 帶參數的建構子

string(const char *s); //用字串s初始化

string(int n,char c); //用n個字元c



3string存取字符操作

² string類別的字符操作:


const char &operator[] (int n) const;
const char &at(int n) const;
char &operator[] (int n);
char &at(int n);

² operator[]和at()都傳回目前字串中第n個字符,但二者是有區別的。

主要區別在於at()在越界時會拋出異常,[]在剛好越界時會返回(char)0,再繼續越界時,編譯器直接出錯。如果你的程式希望可以透過try,catch捕捉異常,建議採用at()。



4從string取得const char*的操作

² const char *c_str() const; //回傳一個以'

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn