在C ++中将字符数组中的四个元素读入另一个字符数组

时间:2016-07-28 18:52:39

标签: c++ arrays

假设char *data = "02001110000000000"

如何才将前四个元素0200移动到另一个字符数组?

3 个答案:

答案 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);