gpt4 book ai didi

c++ - 将字符串函数复制到非 const char 缓冲区

转载 作者:行者123 更新时间:2023-11-28 03:15:51 26 4
gpt4 key购买 nike

我正在尝试将字符串复制到缓冲区以供进一步处理。我使用了说明

char *buf = line.c_str();

但是 buf 类型应该是 const char*,但是如果我要使用

const char *buf = line.c_str();

我将面临另一个问题,因为我正在使用 strtok_s 函数处理 buf。此函数需要 char * arg。而不是 const char*。是否有其他功能或方法可以将此行复制到 char * ??

最佳答案

一种方法是使用标准库容器,例如 std::vector或 C++14 的 std::dynarray :

std::vector<char> v(line.begin(), line.end());

请记住,这会复制 line 的字符,但没有空终止符 \0。从这个意义上说,缓冲区并不代表字符串。如果您需要空终止(问题中不清楚),则必须手动添加:

v.push_back('\0');

然后你可以通过

使用底层数据
char* c1 = &v[0]
char* c2 = v.data(); // c++11

关于c++ - 将字符串函数复制到非 const char 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879619/

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