C-风格字符串
字符串是存储在内存的连续字节中的一系列字符。C++处理字符串的方式有两种。第一种来自C语言,常被称为C-风格字符串(C-style string);另一种是基于string类库的方法。
本文介绍C-风格字符串。
存储在连续字节中的一系列字符意味着可以将字符串存储在char数组中,其中每个字符都位于自己的数组元素中。C-风格字符串具有一种特殊的性质:以空字符(null character)结尾,空字符被写作\0,起ASCII码为0,用来标记字符串的结尾。例如:
char dog[8] = {'b','e','a','u','x',' ','I','I'}; //不是字符串
char cat[8] = {'f','a','t','e','s','s','a','\0'}; //是字符串
- 这两个都是char数组,但只有第二个是字符串。空字符对C-风格字符串至关重要。C++有很多处理字符串的函数,包括cout使用的那些函数,它们都逐个地处理字符串中的字符,直到发现空字符为止。
如果使用cout显示上面的dog数组(它不是字符串),cout将打印出数组中的8个字母,并接着将内存中随后的各个字节解释为要打印的字符,直到遇到空字符为止。
在cat数组示例中,将数组初始化为字符串的方法要使用大量的单引号,且必须记住加上空字符,这种方法十分麻烦。有一种更好的将字符数组初始化为字符串的方法——只需使用一个用双引号阔气的字符串即可,这