string物件的定義和初始化:
string標準庫支援幾個建構函式.建構函式是乙個特殊成員函式,定義如何初始化該型別的物件.
下面列出幾個string型別常用的建構函式.當沒有明確指定物件初始化式時,系統將使用預設建構函式:
string s1; //預設建構函式,s1為空串
string s2(s1); //將s2初始化為s1的乙個副本
string s3("value"); //將s3初始化為乙個字串字面值常量
string s4(n,'c'); //將s4初始化為字元'c'的n個副本
警告:標準庫string型別和字串字面值
因為歷史原因以及為了與c語言相容,字串字面值與標準庫string型別不是同一種型別.這一點很容易引起混亂,程式設計時一定要注意區分字串字面值和string資料型別的使用,這很重要.
string是stl中的類模板,c++的字串字面值的型別是const char[n],兩者不是一回事。
string是stl模板裡面的 使用vector來編寫的 char*是以'\0'結尾 但是string不是的
string裡隱含了個char *指標,這個指標指向真正存放字串字面值的記憶體位址。
習題:3.21什麼是預設建構函式?
預設建構函式就是在沒有顯式初始化式時呼叫的建構函式.它由不帶引數的建構函式,或者為所有形參提供預設實參的建構函式定義.如果定義某個類的變數時沒有提供初始化式,就會使用預設建構函式.如果使用者使用的類中沒有顯式定義任何建構函式,編譯器就會自動為該類生成預設建構函式,稱為合成的預設建構函式.
3.22列舉出三種初始化string物件的方法.
1.不帶初始化式,使用預設建構函式初始化string物件.
2.使用乙個已存在的string物件作為初始化式,將新建立的string物件初始化為已存在物件的副本.
3.使用字串字面值作為初始化式,將新建立的string物件初始化為字串字面值的副本.
3.23s和s2的值分別是什麼?
string s;
int main()
s和s2均為空字串.
標準庫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...