字符串讲解
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 ",作为字符串结束的标志,因此会增加一个单位长度。