通常我这样做strcpy但是看起来我不能将较大尺寸复制到较小尺寸的阵列.我明白我需要为它跳过一个数组元素,我想跳过第一个[0]元素,但我怎么能这样做呢?我真的不想写类似的东西等a[39]=b[40]; a[38]=b[39]....
Naw*_*waz 11
std::strncpy(a, b + 1, 40);
Run Code Online (Sandbox Code Playgroud)
即使最后一个字符b没有'\0',或者'\0'索引处有某个地方,它也会起作用i.
strncpy如果a和b不被视为cstring特别有用,而不是它们只是可能包含或不包含的缓冲区'\0'.
在C++中,您还可以使用std::copyas:
#include <algorithm> //include this!
std::copy(b + 1, b + 41, a); //b + 41 = (b + 1) + 40
Run Code Online (Sandbox Code Playgroud)
我通常更喜欢std::copy,因为它是通用的,可以与任何iteratable类型一起使用.