一、string概述
string是一个字符串的类,它集成的操作函数足以完成大多数情况下的需要。我们甚至可以把它当作C++的基本数据类型。
头文件:#include <string>
注意:string.h和cstring都不是string类的头文件。这两个头文件主要定义C风格字符串操作的一些方法,如strcpy() 、strlen()等。string.h是C语言头文件格式,而cstring是C++头文件格式,但是它和string.h是一样的,它的目的是为了和C语言兼容。
二、C++字符串和C字符串的转换
C++提供的由C++字符串转换成对应的C字符串的方法:data() 、c_str() 、copy()。需要注意的是,C++字符串并不以'\0'结尾。
1、data()
data() 是以字符数组的形式返回字符串的内容,但是并不添加'\0'。
2、 c_str()
c_str()返回一个以'\0'结尾的字符数组。c_str() 语句可以生成一个const char*指针,并且指向空字符的数组。这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中数据就会失效。故要么现用现转换,要么把它的数据复制到用户自己可以管理的内存中后在转换。
string str = "Hello, I am LiMing.";
const char* cstr = str.c_str();
cout << cstr << endl;
str =