gpt4 book ai didi

c++ - 将 std::string 转换为 char * 替代

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:19 24 4
gpt4 key购买 nike

我在 google 中进行了搜索,但被告知这是不可能的,因为我只能从字符串中获取静态 char *,所以我正在寻找替代方案。

情况是这样的:我有一个 .txt 文件,其中包含其他 .txt 文件的列表和一些数字,这样做是为了无需重新编译即可添加程序。我使用 ifstream 将文件名读入字符串。

它们所需的函数需要一个 char * 而不是 string 并且显然这种转换是不可能的。

我可以访问此函数,但它使用 char * 调用另一个函数,所以我认为我无法使用 char *

有谁知道解决方法或其他方法吗?

最佳答案

在 C++ 中,如果需要非 const char*,我总是会执行以下操作:

std::vector<char> buffer(str.length() + 1, '\0');
std::copy(str.begin(), str.end(), buffer.begin());
char* cstr = &buffer[0];

第一行创建了我们字符串的可修改拷贝,保证驻留在连续的内存块中。第二行获取指向该缓冲区开头的指针。请注意, vector 比字符串大一个元素以容纳空终止符。

关于c++ - 将 std::string 转换为 char * 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com