Possible Duplicate:
how to copy char * into a string and vice-versa
我必须将一个值传递给一个需要 char * 的方法
MyMethod(char * parameter)
{
// code
}
但是,我需要提供给它的参数当前是一个 std::string。如何将 std::string 转换为 char *?
std::string myStringParameter = //whatever
char * myCharParameter = //Convert here somehow
MyMethod(myCharParameter);
您正在寻找 c_str()
方法:
char * myCharParameter = myStringParameter.c_str();
您可能需要const_cast
将返回值转换为char *
而不是const char *
。但是不要修改字符串;它是 std::string
对象的内部缓冲区。如果你真的需要修改字符串,你应该使用 strncpy
将它复制到另一个缓冲区:
char * myCharParameter = new char[myStringParameter.length() + 1];
strncpy(myCharParameter, myStringParameter.c_str(), myStringParameter.length() + 1);
// And later...
myStringParameter.assign(myCharParameter);
delete [] myCharParameter;