在C++中从std :: string转换为char*

Rya*_*yan 3 c++ type-conversion visual-studio-2010

我正在使用VS2012/C++,我需要将std :: string转换为char*,我在网上找不到任何材料给出任何关于如何去做的指导.

任何代码示例和建议将不胜感激.

rub*_*nvb 12

使用

std::string bla("bla");
char* blaptr = &bla[0];
Run Code Online (Sandbox Code Playgroud)

这保证在C++ 11之后起作用,并且在C++ 11之前有效地适用于所有流行的实现.

如果你只需要一个const char*,你可以使用std::string::c_str()std::string::data()

  • 我知道C++ 11要求字节是连续的.但我没有看到&bla [0]指向的字符串要求零终止.这可能对用户有用,也可能不重要. (3认同)
  • @ user515430:要求就在那里,它只是隐藏得很好.请参阅[此问题](http://stackoverflow.com/q/7554039/485561). (3认同)