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