gpt4 book ai didi

c++ - 将固定长度的字符数组分配给字符串

转载 作者:太空狗 更新时间:2023-10-29 23:53:15 26 4
gpt4 key购买 nike

我有一个固定长度的字符数组,我想分配给一个字符串。如果字符数组已满,问题就来了,分配失败。我想过在可以提供 n 的地方使用赋值,但这会忽略 \0。例如:

std::string str;
char test1[4] = {'T', 'e', 's', 't'};
str.assign(test1); // BAD "Test2" (or some random extra characters)
str.assign(test1, 4); // GOOD "Test"
size_t len = strlen(test1); // BAD 5

char test2[4] = {'T', 'e', '\0', 't'};
str.assign(test2); // GOOD "Te"
str.assign(test2, 4); // BAD "Tet"
size_t len = strlen(test2); // GOOD 2

对于这两种情况,如何将固定长度的字符数组正确分配给字符串?

最佳答案

使用“迭代器对”形式的赋值。

str.assign(test1, std::find(test1, test1 + 4, '\0'));

关于c++ - 将固定长度的字符数组分配给字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11934746/

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