通常我会执行 strcpy
但这里看起来我无法将较大的数组复制到较小的数组。我知道我需要为此跳过一个数组元素,我想跳过第一个 [0]
元素,但我该怎么做呢?我真的不想写类似的东西 a[39]=b[40]; a[38]=b[39]...
等
最佳答案
std::strncpy(a, b + 1, 40);
即使 b
中的最后一个字符不是 '\0'
,或者在某处有 '\0'
,它也会起作用索引我
。
strncpy
在 a
和 b
不被视为 cstring 时特别有用,而是它们'只是 buffer,它可能包含也可能不包含 '\0'
。
在 C++ 中,您还可以使用 std::copy
作为:
#include <algorithm> //include this!
std::copy(b + 1, b + 41, a); //b + 41 = (b + 1) + 40
我通常更喜欢 std::copy
,因为它是通用的,可以与任何可迭代 类型一起使用。
关于c++ - 如何将 char[41] 转换为 char[40],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352368/