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
成员函数是等效的)![]() 数组 | ![]() 目录 | ![]() 指针 |