C++中的字符串
字符串有三种形式。
1.用双引号括起来的字符串常量,如“CHINA”,“C++ program”。
2.存放于字符数组中,以'\0'字符(ASCII码为0)结尾
3.string对象。string是C++标准模板库里的一个类,专门用于处理字符串。
字符串常量
- 字符串常量占据内存的字节数等于字符串中字符数目加1,多出来的是结尾字符‘、0‘’。
- 字符串“C program”在内存中的布局:
C | p | r | o | g | r | a | m | \0 |
- 字符串的长度不包含‘\0’
- ""也是合法的字符串常量,称为“空串”,空串仍然会占据一个字节的存储空间,存放‘\0’。
- 如果字符串常量中包含双引号,则双引号应写为‘\"’。而‘\’字符在字符串中出现时,须连写两次,变成‘\\’。例如:
cout<<"He said:\"I am a stu\\dent.\"";
=>He said:"I am a stu\dent.";
用一维char数组存放字符串
- 包含‘\0’字符的一维char数组,就是一个字符串。其中存放的字符串即为‘\0’前面的字符组成。
- 用char数组存放字符串,数组元素个数应该至少为字符串长度+1
- char数组的内容,可以在初始化时设定,也可以用C++库函数进行修改呢,还可以用对数组元素赋值的办法任意改变其中的某个字符。
- 字符数组同样可以用cout、printf输出,用cin、scanf读入。用cin、printf将字符串读入字符数组时,会自动在字符数组中字符串的末尾加上‘\0’。