關注C 細節 標準庫string型別

2021-08-26 04:12:00 字數 1145 閱讀 9276

一. 首先作為一種標準庫型別,string存在四種基本的建構函式。如下:

string s; //預設建構函式,s為空串

string s(s1);//用s1來初始化s

string s("my blog

"); //將s初始化為乙個字串字面值

string s(n,'c'); //將s初始化為n個『c』的副本

二.對於輸入主要就是cin>>s;

(1)讀取並忽略開頭所有的空白字元。

(2)讀取字元直至再次遇到空白字元,讀取終止。

(3)輸入操作符會返回所讀的資料流。

當要讀入一整行時可以使用getline函式,getline函式需要兩個引數第乙個為輸入流 物件,第二個為乙個string型別物件。值得注意的是getline並不忽略行開頭的空白字 符。

三.string::size_type型別

(1)size()函式我們平時都直接預設它返回int型別的值,事實上size()函式返回的是string::size_type型別的值。

(2)string類型別和許多其他型別都定義了一些配套型別。重要的是通過這種配套型別,庫型別的使用就能與機器無關。size_type就是這些配套型別中的一種。

(3)建議string的size操作結果的變數為string::size_type型別。特別重要的是,盡量 不要把size的返回值賦值給乙個int變數。

四.string物件的相加注意

當進行string物件和字串字面值混合連線操作時,+操作符的左右運算元必

須至少有乙個是string型別的物件。

例.s2=「world」; string s=「hellow」+「,」+s2;這裡是錯誤的,因為第乙個+

號的兩邊都為string字面值。

五.string轉為char *

很多時候我們還是需要將string型別的轉化為char*來實現自定義的操作,

c++標準庫也為了和之前用c寫的程式相容,於是可以用string的c_str()函式。

string a="my blog

";char * b=a.c_str();//這樣不能通過編譯,原因是為了防止string物件內容被惡意修改,返回的是const型別的物件,所以要加const修飾

const char * b=a.c_str();//這樣就能編譯通過了。

C 標準庫 (string 類)

一 成員函式 二 非成員有關的全域性函式 三 例項 感謝閱讀!其中的string是以char作為模板引數的模板類例項,把字串的記憶體管理責任由string負責而不是由程式設計者負責,大大減輕了c語言風格的字串的麻煩 std basic string提供了大量的字串操作函式,如比較 連線 搜尋 替換 ...

C 基礎 string類和標準模板庫

智慧型指標模板類 標準模板庫 泛型程式設計 函式物件 演算法其他庫 內容包括 標準c string類 模板auto ptr unique ptr和shared ptr 標準模板庫 stl 容器類 迭代器 函式物件 stl演算法 模板initializer list string類的建構函式 建構函式...

string標準庫型別 C

c 中string的學習體會 string 1 不允許把兩個字串字面值連線起來,乙個string物件 字串字面值返回的是string物件.string size type只是string裡方便移植性的定義的一種型別 2 cout include using namespace std int mai...