gpt4 book ai didi

c++ - 如何将 const char* 转换为 char[256]

转载 作者:太空宇宙 更新时间:2023-11-04 15:11:38 24 4
gpt4 key购买 nike

如何将 const char* 转换为 char[256]

const char *s = std::string("x").c_str();
char c[256] = /* ??? */

最佳答案

不能用字符指针初始化数组。但是你可以复制字符串。例如:

const char *s = get_the_string();
char c[256]{};
auto n = std::strlen(s);
if (std::size(c) <= n)
throw std::runtime_error(
"The buffer is too small. Contact your local C++ maintainer");
std::memcpy(c, s, n);

使用常量数组的明显问题是您需要考虑如何处理输入字符串不适合的情况。在这里,我使用了异常,但如果这不适合您,您可以使用您选择的错误处理。


你不能从 const char *s = std::string("x").c_str(); 复制,因为指针是悬空的,尝试访问指向的数据会有未定义的行为。

关于c++ - 如何将 const char* 转换为 char[256],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57368065/

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