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

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

Susan Sarandon
发布: 2024-12-01 07:46:12
原创
881 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板