C++中提供了一种新的数据类型——字符串类型(string)。实际上string并不是C++的基本类型,它是在C++标准库中声明的一个字符串类,用这种数据类型可以定义对象,每一个字符串变量都是string类的一个对象。
一、字符串类型:string
字符串类包含在头文件#include<string>中,因此使用string时必须包含头文件#include<string>。字符串变量必须先定义后使用,定义字符串变量要使用类名string。在定义字符串变量时不需指定长度,它的长度随其中的字符串长度而改变。
例:string s1; //定义字符串变量s1
string s2="hello"; //定义字符串变量s2,同时对其初始化
二、初始化string类对象的方式
1、用字符串常量给字符串变量赋值
例:string s1;
s1="hello"; //这点与字符数组不相同
2、用一个字符串变量给另一个字符串变量赋值
例:string s1="hello";
string s2;
s2=s1;
//这一点与字符数组也有所不同
3、可以对字符串变量中某一字符进行操作
例:string s1="Then";
s1[2]=‘a‘; //修改序号为2的字符,修改后s1就变为than
字符串常量以‘\0‘作为结束符,但将字符串常量存放到字符串变量中时,只存放字符串本身而不包括‘\0’。
三、string类型的常见操作
1、字符串复制用赋值号
例:s1=s2; //将s2赋给s1
2、字符串连接用加号
例:string s1="hello ";
string s2="world";
string s3=s1+s2;
输出s3就是hello world。注意:在字符串连接时,要连接的字符串中至少有一个是字符串变量。不能全部都是字符串常量。
3、字符串比较直接用关系运算符
可以直接用==(等于)、>(大于),<(小于),>=(大于等于),<=(小于等于),!=(不等于)直接进行比较,其返回值是bool类型。
四、字符串数组
可以用string定义字符串数组。
例:string s1[3]={"zhang","li","zhao"};
注意:
1、字符串数组中的每一个元素都相当于一个字符串变量。
2、与二维字符数组不同的是,字符串数组并不要求每个字符串元素具有相同的长度。对于每一个字符串元素而言,它的长度是可以变化的。
3、每一个字符串元素中只包含字符串本身的字符而不包含‘\0‘。
4、字符串数组的么一个元素存放的都是一个字符串的地址。