这个问题已经在这里有了答案:




已关闭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/

10-12 01:35