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