【C++】学习笔记五

您所在的位置:网站首页 语言风格意思是什么解释 【C++】学习笔记五

【C++】学习笔记五

2024-07-17 12:07| 来源: 网络整理| 查看: 265

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数组示例中,将数组初始化为字符串的方法要使用大量的单引号,且必须记住加上空字符,这种方法十分麻烦。有一种更好的将字符数组初始化为字符串的方法——只需使用一个用双引号阔气的字符串即可,这种字符串被称为字符串常量(string constant)或字符串字面值(string literal),如下所示:

char bird[11] = "Mr. Cheeps"; //结尾自动包含\0 char fish[] = "Bubbles"; //让编译器自动计数

用双引号括起的字符串隐式地包含结尾的空字符,各种C++输入工具输入字符串到char数组中时,将自动加上结尾的空字符。

应确保数组足够大,能够存储字符串中的所有字符——包括空字符。使用字符串常量初始化字符数组时,让编译器自动计算元素数目更为安全。

字符串常量(使用双引号)与字符常量(使用单引号)不能互换。 字符常量(如’S’)是字符串编码的简写表示,而”S”不是字符常量,它表示字符S和\0组成的字符串。而且,”S”实际上表示的是字符串所在的内存地址。

char shirt_size = 'S'; //合理,将83赋给shirt_size char shirt_size = "S"; //类型不匹配,试图将一个内存地址赋给shirt_size 1.拼接字符串常量

有时候,字符串很长,无法放到一行中。C++允许拼接字符串常量,讲讲两个用双引号括起的字符串合并为一个。事实上,任何两个由空白(空格、tab和换行符)分隔的字符创常量都将自动拼接成一个。因此,西面所有的输出语句都是等效的:

cout


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3