1. 程式人生 > >【C++】 string學習筆記1——定義和初始化string物件

【C++】 string學習筆記1——定義和初始化string物件

string學習筆記1

c++初始化string物件的方式有以下幾種常見的方式。

/**定義和初始化string**/

    string s1;              ///預設的初始化,s1為一個空字串。
    string s2 = s1;         ///s2是s1的副本。
    string s3 = "abcd";     ///s3是該字串字面值的副本。
    string s4("abcd");      ///等價於s3="abcd",除了字元值最後的那個空字元“\0”。
    int n = 10;
    string s5(n,'c');      ///s5的內容是cccccccccc,即n個字元c組成的串。

tips—–直接初始化與拷貝初始化的區別

一般來說使用等號初始化一個變數就是拷貝初始化。
同理,不使用等號就是直接初始化。
    string s6 = "abcd";     ///拷貝初始化,拷貝的字串為"abcd'\0'"。
    string s7("abcd");      ///直接初始化,s7的值為"abcd"。
    string s8(10,'c');      ///直接初始化,內容為cccccccccc。

如同上面例子的s6就是拷貝初始化,s7和s8就是直接初始化。

當然以下寫法也可以做到拷貝初始化,也許有時候總會有人不想要直接初始化在字串後面的’\0’這個空字元或者就是想強行拷貝初始化。

    /**合法但是不太推薦的初始化寫法*/
    string s9 = string(10,'c'); ///拷貝初始化
    ///等價於
    string temp(10,'c');
    string s10 = temp;

不過顯而易見,這樣子的寫法在大多數情況下既不好看也沒啥用。