首页 >后端开发 >C++ >如何在 C 中将 std::string 转换为 char* 或 char[] ?

如何在 C 中将 std::string 转换为 char* 或 char[] ?

Susan Sarandon
Susan Sarandon原创
2024-12-01 07:46:12916浏览

How to Convert a std::string to a char* or char[] in C  ?

将 std::string 转换为 char* 或 char[]

将 std::string 转换为 char* 或 char[]数据类型在 C 中是一个常见的任务,但值得注意的是不支持自动转换。为了实现这一点,可以使用 c_str() 方法来获取 std::string 的 C 风格字符串表示形式。

std::string str = "string";
const char *cstr = str.c_str();

c_str() 方法返回一个 const char 指针,因此如果需要非常量指针,可以使用 data() 方法代替:

char *cstr = str.data();

替代选项:

除了使用 c_str() 和 data() 之外,还有其他方法将 std::string 转换为 char*:

  • 将字符复制到向量中:

    std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);

    请注意,此版本复制终止空字符 (' ')。

  • 手动内存管理(谨慎使用):

    char *cstr = new char[str.size() + 1];
    std::strcpy(cstr, str.c_str());
    // do stuff
    delete [] cstr;

以上是如何在 C 中将 std::string 转换为 char* 或 char[] ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn