標準庫string類型
使用前需要包含頭文件
#include<string>
using std::string;
string對象的定義和初始化:
--------------------------------------------------------------------------------------
幾種初始化string對象的方式
--------------------------------------------------------------------------------------
string s1; 默認構造函數,s1爲空串
string s2(s1); 將s2初始化爲s1的一個副本
string s3("value"); 將s3初始化爲一個字符串字面量
string s4(n, 'c'); 將s4初始化爲字符'c'的n個副本
--------------------------------------------------------------------------------------
注:標準庫string類型和字符串字面值不是同一種類型!
string對象的讀寫
可以用標準庫iostream對象操作string類型:
string s;
cin >> s;
cout << "you have input " << s << endl;
從標準輸入讀取string,並將讀入的串存儲在s中。這個過程做了2件事情:
1.讀取並忽略開頭所有的空白字符(空格、換行符、製表符)
2.讀取字符知道再次遇到空白字符,讀取終止
如果需要讀取未知數目的string對象
while(cin>>s) //循環一直爲true直到到達文件尾或者遇到無效輸入
{
cout << "you have input " << s << endl;
}
如果需要讀取整行文本,則可以用string IO操作:getline函數
while(getline(cin, s))
{
cout << "have read a line " << s << endl;
}
由於getline函數返回時丟棄換行符,換行符不會存儲在string對象中
string對象的操作:
--------------------------------------------------------------------------------------
s.empty(); //if s="", return true, else return false
s.size(); //返回s中字符的個數
s[n]; //返回s中位置爲n的字符,位置從0開始計數
s1+s2; //把s1和s2連接成一個新字符串,返回新生成的字符串
s1=s2; //把s1內容替換爲s2的副本
v1==v2; //比較v1和v2的內容,相等則返回true,否則返回false
!=, <, <=, >, >= //保持慣有含義