(12)標準庫型別string

2021-07-24 06:36:24 字數 2149 閱讀 5622

標準庫型別string表示可變長的字串行,使用string型別必須首先包含string標頭檔案。作為標準庫的一部分,string

定義在命名空間std中。如:

#includeusing std::string;
定義和初始化string物件:

如何初始化類的物件是由類本身決定的。乙個類可以定義很多種初始化物件的方式,只不過這些方式之間必須有所區別:或者是初始值的數量不同,或者是初始值的型別不同。下面是初始化string物件的幾種方式:

直接初始化和拷貝初始化的區別:

如果使用等號(=)初始化乙個變數,實際上執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中去。與之相反,如果不使用等號,則執行的是直接初始化.

string物件上的操作(大部分):

讀取string物件:如:

#include#includeusing std::string;

using std::cin;

using std::cout;

using std::endl;

void main(){

string s; //空字串

cin>>s; //將string物件讀入s,遇到空白停止

cout<

使用getline讀取一整行:

有時候我們希望能夠在最終得到的字串中保留輸入時的空白符,這時應該用到getline函式代替原來的》運算子。

getline函式的引數是乙個輸入流和乙個string物件,函式從給定的輸入流中讀入內容,直到遇到換行符為止(注意換行符也被讀進來了),然把所讀的內容存入到那個string物件中去(注意不存在換行符),返回過程中換行符實際上被丟棄了。

getline只要一遇到換行符就結束讀取操作並返回結果,哪怕輸入的一開始就是換行符也是如此。如果開始輸入的是換行符,那麼得到的結果是個空string。

string::size_type型別

需要說明一下,string物件的size函式返回的結果是乙個string::size_type型別的值,它也是乙個無符號型別的值,而且能足夠存下任何string物件的大小。允許編譯器通過auto或者decltype來推斷變數的型別。

string類及其大多數標準庫型別都定義了幾種配套的型別。這些配套型別體現了標準庫型別與機器無關的特性,型別size_type即是其中的一種。

比較string物件:

string物件的比較按照(大小寫敏感的)字典順序:

一.如果兩個string物件的長度不同,而且較短string物件的每個字元都與較長string物件對應位置上的字元相同,就說較短string物件小於較長string物件。

二.如果兩個string物件在某些對應的位置上不一致,則string物件比較的結果其實是string物件中第一對相異字元比較的結果。

對於string類而言,允許吧乙個物件的值賦給另外乙個物件。如:

string s1("hello"),s2;

s2=s1;

兩個string物件相加:

兩個string物件相加得到乙個新的string物件,其內容是把左側的運算物件與右側的運算物件串接而成:前半部分是加號左側string物件所含的字元、後半部分是加號右側string物件所含的字元。

字面值和string物件相加:

因為標準庫允許把字元字面值和字串字面值轉換成string物件,所以在需要string物件的地方就可以使用這兩種字面值來代替。如:

string s1 = 「hello」;

string s2 = s1+',';

s2+=s2+"\n";

當把string物件和字元字面值及字串字面值混在一條語句中使用時,必須確保每個加法運算子(+)的兩側的運算物件至少有乙個是string物件。

string s3 = "hello"+",";     //錯誤
因為某些歷史原因,也為了與c相容,所以c++語言中的字串字面值不是標準庫型別string的物件。

標準庫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...