string
類。它是一個非常強大的類,用於處理和操作字串。然而,因為字串實際上是字元序列,我們也可以用普通字元型別的陣列來表示它們。
|
|
char
型別元素的陣列。它可以表示為:"Hello"
或序列 "Merry Christmas"
都可以儲存在 foo
中,因為它們都適合容量為 20 個字元的序列。'\0'
(反斜槓,零)。foo
的、包含 20 個 char
型別元素的陣列,可以表示為儲存了 "Hello"
和 "Merry Christmas"
字元序列的樣子:'\0'
) 來表示序列的結束。灰色面板代表值不確定的 char
元素。
|
|
char
型別元素的陣列,並用構成單詞 "Hello"
的字元以及末尾的一個空字元 '\0'
來初始化它。"
) 中來指定。例如:
|
|
"
) 括起來的字元序列是字面常量。它們的型別實際上就是以空字元結尾的字元陣列。這意味著字串字面量的末尾總是會自動附加一個空字元 ('\0'
)。myword
的 char 元素陣列可以透過以下兩種語句中的任意一種來初始化為一個以空字元結尾的字元序列:
|
|
myword
都被宣告為大小為 6 個 char
元素的陣列:構成單詞 "Hello"
的 5 個字元,外加一個最後的空字元 ('\0'
)。這個空字元指定了序列的結束,在第二種使用雙引號 ("
) 的情況下,它是自動附加的。myword
已經被如上宣告之後)像下面這樣的表示式:
|
|
|
|
|
|
string
類),但以空字元結尾的普通字元序列陣列(C-風格字串)仍然是該語言中表示字串的一種自然方式;事實上,字串字面量仍然總是生成以空字元結尾的字元序列,而不是 string
物件。cin
和 cout
直接支援以空字元結尾的序列,允許它們像字串一樣直接從 cin
中提取或插入到 cout
中。例如:
|
|
What is your name? Homer Where do you live? Greece Hello, Homer from Greece! |
cin
和 cout
結合使用時幾乎可以互換,但它們的宣告有一個顯著的區別:陣列具有固定大小,需要在宣告時顯式或隱式地指定;question1
的大小正好是 20 個字元(包括結尾的空字元),answer1
的大小是 80 個字元;而字串就是字串,沒有指定大小。這是因為字串具有在執行時確定的動態大小,而陣列的大小在編譯時、程式執行之前就已經確定了。string
的成員函式 c_str
或 data
轉換為以空字元結尾的字元序列:
|
|
string
的 c_str
和 data
成員函式是等效的)![]() 陣列 | ![]() 目錄 | ![]() 指標 |