首先明确一下:
char是C语言标准库的数据类型;
string是C++为了方便用户定义的一个字符串类,这个类重载了操作符"+""-"等等,还有很多成员函数方便用户使用,所以在C++中编程使用string给我们带来了很大的方便。
C语言中只有char类型的字符标准库,为了让C++的string 和C的char兼容,定义了string类的成员函数c_str(),该函数返回一个char类型的指针,而且在string类的字符后面添加结束标识符"\0"。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 比如:最好不要这样:应该这样用:char* c; string s="1234"; c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作char c[20]; string s="1234"; strcpy(c,s.c_str());