一. 首先作為一種標準庫型別,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...