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