混用string对象和C风格字符串
我们都知道允许使用字符串字面值来初始化string对象:
string s("Hello World!");
C++规定,任何出现字符串字面值的地方都可以用以空字符结束的字符数组来替代:
- 允许使用以空字符结束的字符数组来初始化string对象或为string对象赋值。
- 在string对象的加法运算中允许使用以空字符结束的字符数组作为其中一个运算带对象(不能两个对象都是);在string对象的复合赋值运算中允许是用以空字符结束的字符数组作为右侧的运算对象。
上述性质反过来并不成立:如果程序的某处需要一个C风格字符串,无法直接用string对象来替代它。
例如:不能使用string对象直接初始化指向字符的指针。为了实现这一功能,string专门提供了一个名为c_str的成员函数:
char