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