C++ char * 转字符串

标签 c++ string std casting

<分区>

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;

关于C++ char * 转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380520/

相关文章:

c++ - 将单个字符转换为 std::string prepends\x01

c++ - 对相互依赖的对象的 C++ vector 进行排序的简短解决方案?

C++ 模板与继承

c++ - 如何将 fftw3 链接到 eclipse mars c++?

datetime - 在 Scala 2.8 中,如何通过子字符串的长度和起始索引来访问子字符串?

Python 为单个非 ascii 字符串返回长度为 2

c++ - 使用自定义分配器调整大小

c++ - 迭代、插入和删除?

c++ - 将 Paypal 与 C++ MFC 应用程序集成

java - 如何取出字符串中的每个字符,并按倒序排列?