这个问题已经在这里有一个答案:
- 串c_str()对数据() 6个答案
为什么我会永远想调用std::string::data()
上std::string::c_str()
当然有一些方法来这里的标准的疯狂......
这个问题已经在这里有一个答案:
为什么我会永远想调用std::string::data()
上std::string::c_str()
当然有一些方法来这里的标准的疯狂......
c_str()保证NUL终止。 数据()不。
c_str()返回一个指向数据的指针与所附因此可以使用的返回值作为“C字符串” a NUL字节。
数据()返回一个指针数据,而无需任何修改。
使用c_str()如果您使用的代码假定一个字符串是NUL终止(书面处理C字符串,例如任何功能)。
现在,在MS STL 10.0那里似乎没有什么区别,因为我看到这个标题:
... \微软的Visual Studio 10.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());
}
于是他们返回同样的事情。