假设char *data = "02001110000000000"
如何才将前四个元素0200
移动到另一个字符数组?
答案 0 :(得分:2)
您可以使用strncopy
:
char *data = "02001110000000000"
char dest[4];
strncopy(dest, data, 4);
请注意,strncopy
不会复制空终止字符('\0'
),因此dest
这里不是字符串,它只是一个包含四个char
s的数组。如果您希望它是字符串“0200”,则必须将其定义为五元素数组并自己附加'\0'
字符。
答案 1 :(得分:0)
假设您不需要将字符复制到新数组中(即重用相同的已分配内存是可以接受的),您可以为此做一些指针技巧。
数组只是指向第一个元素的指针。
char firstFour[4] = &data[0];
or
char *firstFour = &data[0];
要从第一个数组中删除元素,请执行
data = &data[4];
答案 2 :(得分:0)
char * newArray = new char [4];
memcpy(newArray,data,4);