这个问题已经在这里有了答案:
已关闭10年。
我必须将值传递给需要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;
关于c++ - C++ char *转换为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3380520/