天天看點

标準庫string類型學習

     string類型支援長度可變的字元串。

1. string對象的定義和初始化

string s1; //預設構造函數,s1為空串

string s2(s1); //将s2初始化為s1的一個副本

string s3(“value”); //将s3初始化為一個字元串字面值副本

string s4(n, ‘c’); //将s4初始化為字元‘c’的n個副本

2.string對象的讀寫

(1) 用輸入操作符來讀取string對象

cin >> s,規則是:讀取并忽略開頭所有的空白字元(如空格,換行符,制表符等);讀取字元直至再次遇到空白字元,讀取終止。

示例:

string s;

while ( cin >> s )

    cout << word << endl;

(2)用getline讀取整行文本

getline(cin,s),該函數接受兩個參數:一個輸入流對象和一個string對象。getline并不忽略行開頭的換行符。

while ( getline(cin, s) )

    cout << line <<endl;

無可避免的,這兩種方式都要遇見處理空白字元的情況。其中,string類型的輸入操作符對空白字元的處理:讀取并忽略有效字元(非空白字元)之前所有的空白字元,然後讀取字元直至再次遇到空白字元,讀取終止(該空白字元扔留在輸入流中);而getline函數對空白字元的處理:不忽略行開頭的空白字元,讀取字元直至遇到換行符,讀取終止并丢棄換行符(換行符從輸入流中去掉但并不存儲在string對象中)。

3. string 對象的操作

s.empty(); //判斷字元串是否為空,若空傳回true,否則傳回false

s.size(); // 傳回s中的字元個數

s[n]; // 傳回s中位置為n的字元, 位置從0開始計數

string s1, s2;

s1 + s2; // 将s1和s2連接配接成一個新字元串,傳回新生成的字元串

s1 = s2; // 把s1内容替換為s2的副本

s1 == s2; // 比較兩個字元串的内容,相等則傳回true,否則傳回false