C++学习笔记系列2-27

字符串讲解

C语言风格的字符串

**字符串是由字符组成的数组,但要注意,字符是由单引号包裹起来,而字符串是由双引号包裹起来,如:'S'、'A' 这是字符,"hello"、"string"这就是字符串。**本课我们先了解C语言风格的字符串,虽然在日常开发中使用不多,但是了解它的特性有助于之后的学习。

因为C++源于C,所以在C++中也可以编写C语言风格的字符串。如下:

char str = "hello" ;****// 看到有" ",所以这是一个字符数组。字符串本质就是一串字符数组。

我们可以通过完整代码形式了解一下C语言风格的字符串,并了解它的特点,如下:

#include <iostream>

using namespace std;

int main()

{

char str = "hello"; // 声明并初始化了一个字符数组

cout << str <<endl;

// 我们计算一下这个数组的长度

int length = sizeof(str)/ sizeof(str 0 );

cout << "str的长度为:" << length <<endl;

}

输出结果:hello

str的长度为:6

**"hello"只有5个字符,长度应该是 5 才对,但是编译器给的却是 6 。**这就是C语言风格字符串的特点。

因为C++编译器会在初始化数组时,自动把空字符 null 放到字符串的末尾处,空字符 null 在计算机中被表示为:\0。所以字符串的长度就变为了:6。如下所示:

字符串变量str:h e l l o \0

索引值 :0 1 2 3 4 5

这就是字符数组的特点,也是C语言风格字符串的特点。重点就是C语言风格字符串会默认添加一个" \0 ",作为字符串结束的标志,因此会增加一个单位长度。