1. string的初始化
//1. string 的初始化方式
string s1; //默認構造函數,初始化為空串""
string s2(s1); //將s2初始化為s1的副本
string s3("value"); //初始化為字面值副本、
string s4(5,'c'); //初始化為字符'c'的n個副本
由於歷史原因及為了與C語言兼容,string類型與字符字面值時不同類型。
2. string 對象的讀寫
string s;
cin>>s;
(1). 讀取並忽略開頭所有空白字符(空格、換行符、制表符)。
(2). 讀取直到再次遇到空白字符,讀取終止。
讀取操作將返回做操作數,這意味著可進行級聯操作。
2.1 讀入未知數目大的string
while (cin>>s)
cout<<s<<endl;
將輸入流的有效性作為判斷條件,即是否到達文件末尾且是否有效輸入。
2.2 用getlint 讀取整行文本
getline函數的兩個參數,(輸入流對象,string對象),從輸入流中讀取去一行,保存到string對象中,次string對象不包含換行符。
getline並不忽略開頭換行符,如遇到換行符,將作為一次有效輸入,返回空串到string對象。
注:getline函數返回將丟棄換行符。
3. string 的操作
3.1 長度
if(s.empty() == false)
{
string::size_type length = s.size();
cout<<"size = "<<length<<endl;
}
size操作返回的是string::size_type類型,與機器無關,unsigned的保證足夠大能存儲任意string的長度。
最佳實踐:不要把size的返回值賦給一個int變量。
一個是存儲長度問題,一個是與機器的相關性。因此最安全的是使用string::size_type類型。
3.2 關系操作符
字典排序比較