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

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

Patricia Arquette
Patricia Arquette原创
2024-12-03 04:20:10863浏览

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

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

std::string 转换为 char* 或 char[] 数据C 中的类型需要显式方法,因为它们不会自动转换。

方法 1:使用 c_str()

获取 std::string,使用 c_str() 方法。此方法返回一个 const char。对于非常量 char,请使用 .data():

std::string str = "string";
const char *cstr = str.c_str(); // const char*
char *cstr = str.data(); // non-const char*

方法 2:复制到向量

std::string 字符复制到std::vector:

std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
char *ptr = cstr.data(); // pointer to c-string

方法三:手动分配数组(不推荐)

手动分配数组C 字符串:

const char *cstr = new char[str.size() + 1];
std::strcpy(cstr, str.c_str());
// ... use the array ...
delete [] cstr;
记住该手册至关重要内存管理可能会导致错误。作为最佳实践,最好使用

.c_str().data().

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

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