之间有什么区别std::string::c_str和性传播疾病::string::数据?[重复]
题
这个问题已经有一个答案在这里:
- 串c_str()vs.数据() 6的答案
为什么我想要叫 std::string::data()
在 std::string::c_str()
?当然有一些方法的标准的疯狂在这里...
解决方案
c_str()保证NUL终止。数据()没有。
其他提示
c_str()返回的指针到的数据与NUL字节所附的所以你可以使用的返回值作为"C string"。
数据()返回的指针到的数据没有任何修改。
使用c_str()如果您使用的假设一串是NUL终止(例如任何功能的书面来处理C strings)。
现在MS STL10.0似乎没有任何区别,正如我看到这个标题:
...\Visual Studio10.0\VC\包括\xstring
const _Elem *c_str() const
{ // return pointer to null-terminated nonmutable array
return (_Myptr());
}
const _Elem *data() const
{ // return pointer to nonmutable array
return (c_str());
}
因此,他们的返回同样的事情。
不隶属于 StackOverflow