gpt4 book ai didi

c++ - 将 String.data() 转换为数组

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

我想获取一个字符串,并用它的值填充一个数组。我知道字符串的长度是16,我试过了

char *bit_number[16];
bit_number = bin.data();

char bit_number[16];
bit_number = bin.data();

我不明白 String.data() 返回的是什么,为什么我不能将它直接分配给数组?我收到编译器错误:

error: incompatible types in assignment of ‘const char*’ to ‘char* [16]’

error: incompatible types in assignment of ‘const char*’ to ‘char [16]’

最佳答案

需要复制内容:

假设 bin 是一个 std::string:

char bit_numer[16];
copy( bin.begin(), bin.end(), bit_number );

然而,这充满了风险。如果您的 bin 有 17 个字符怎么办?

顺便说一句,你的原始代码:

char *bit_number[16];

...不会像您预期的那样分配 16 个 char 的数组。它分配了一个包含 16 个 char* 的数组。很可能不是您想要的。

关于c++ - 将 String.data() 转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737846/

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