標準庫型別string是一種可變長的字串行。vector和迭代器也是標準庫型別,vector表示可變長的集合。
初始化string物件
初始化string物件有多種方法,如:
string s1;//預設初始化,定義乙個空字串
string s2 = 「hello」;//拷貝初始化,s2是字串字面值的副本
string s3 = s2;//s3是s2的副本
string s4(10,'n');//直接初始化,s4表示含有10個n的字串即nnnnnnnnnn
string物件上的操作
乙個string類規定了初始化其物件的方式,還定義通過函式名呼叫的操作,以及定義各種運算子在該類物件上。
如:讀寫string物件、string的empty和size操作、比較string物件、兩個string物件的相加等等
讀寫string物件
1 可以使用io操作符讀寫string物件,如:
string s1;
cin >> s1;
cout << s1 << endl;//值得注意的是string物件對輸入操作時,自動忽略開頭處的空白,則直到遇到第二個空白處結束。
2 讀取未知數量的string物件
string s2;
while(cin >> s2)
cout << s2 << endl;//直到遇到結束標誌符,才會退出while迴圈
3 使用getline讀取一整行
string s3;
while(getline(cin,s3))//getline只要一遇到換行符就結束讀取操作並返回結果
cout << s3 << endl;//替代輸入流操作符
string的empty和size操作
string類中包含供其使用的函式,其中包括empty和size函式。
empty函式根據string物件是否為空返回乙個bool型別,當為空返回true。
如:string s4;
while(getline(cin,s4))
if(s4.empty())
cout << s4 << endl;
size函式返回string物件的長度,size函式返回的引數型別為string::size_type的型別
如:string s5 = "hello world";
if(s5.size() > 3)//判斷string物件的字元
cout << s5 << endl;//列印s5中超過第三個字元的內容
比較string物件
string物件可以實現對 相等性運算子 == 和!= 、關係運算子 < 、<=、>、>=的操作。
兩個string物件的相加
兩個string物件相加得到乙個新的string物件,即將等號左側的運算物件與右側的運算物件串聯起來,但注意與字面值時的相加。 如:
string s6 = "hello";
string s7 = "moto";
string s8 = s6 + s7;//s8的內容為 hellomoto
但注意字面值與string物件的相加
string s9 = "c++",s10 = "primer";
string s11 = s9 + "," + s10 + '\n';//將string物件和字元字面值及字串字面值混在一起,必須保證每個加法運算子的兩側運算物件至少有乙個string。
處理string物件中的字元
我們需要程式來處理string物件中的字元,一般可以分為處理全部字元(包含查詢和改變)、處理其一部分字元。則會根據需要的不同,處理的方法也會不同。
在標準庫中定義了許多處理字元的函式,是在cctype的標頭檔案中定義的。
處理全部字元(並不改變物件中的字串內容)
一般採用範圍for語句,使用遍歷給定序列的方法。如:
string str1 = "some string";
for(auto c : str1)//str1物件會每次初始化變數c,然後一一列印出來
cout << c << endl;
處理全部字元(改變物件中的字串內容)
如果想要改變string物件中字元的值,必須把迴圈變數定義為引用型別,如:
string str2("hello world!")
for(auto &c : str2)
c = toupper(c);
cout << str2 << endl;//此處迴圈變數使用了引用型別,意思就是變數c是str2的別名,通過toupper()函式改變變數c中的值,實則是改變string物件str2的值。
處理其一部分字元
處理string物件中的字元有兩種方法,一種是使用下標運算子,另一種是使用迭代器。
下標運算子表示訪問的字元的位置,返回值是該位置上字元的引用。如:
string str3("some string");
if(str3.empty())
str3[0] = toupper(str3[0]);
coutstr3[index] = toupper(str3[index]);
標準庫String型別
1 string物件的讀寫 用iostream標準庫可以用於讀寫內建型別如int double等的值,同樣也可以用iostream和string標準庫,使用輸入輸出操作符來讀寫string物件 注 從標準輸入讀取string,並將讀入的串儲存在s中。string型別的輸入操作符 另外還有乙個有用的s...
標準庫 string 型別
從標準輸入讀取 string 並將讀入的串儲存在 s 中。string 型別的輸入操作符 讀取並忽略開頭所有的空白字元 如空格,換行符,製表符 讀取字元直至再次遇到空白字元,讀取終止。輸入 hello world 則螢幕上將輸出 hello 而不含任何空格。這個函式接受兩個引數 乙個輸入流物件和乙個...
標準庫型別string
include using namespace std string定義在命名空間std中文件 string標準庫 string是乙個內部定義的類,初始化類物件的方式是通過類內部定義的構造方法決定的。下面列出幾個string常用的初始化方式 string s1 預設的初始化方式,s1是乙個空串 st...