C++ 将字符数组中的四个元素读入C++;
假设C++ 将字符数组中的四个元素读入C++;,c++,arrays,C++,Arrays,假设char*data=“02001100000000” 如何仅将前四个元素0200移动到另一个字符数组中?您可以使用strncopy: char *data = "02001110000000000" char dest[4]; strncopy(dest, data, 4); 请注意,strncopy不会复制空终止字符('\0'),因此dest这里不是字符串,它只是一个包含四个字符的数组。如果希望它是字符串“0200”,则必须将其定义为五元素数组,并自己附加'\0'字符。您可以使用strn
char*data=“02001100000000”
如何仅将前四个元素
0200
移动到另一个字符数组中?您可以使用strncopy
:
char *data = "02001110000000000"
char dest[4];
strncopy(dest, data, 4);
请注意,
strncopy
不会复制空终止字符('\0'
),因此dest
这里不是字符串,它只是一个包含四个字符的数组。如果希望它是字符串“0200”,则必须将其定义为五元素数组,并自己附加'\0'
字符。您可以使用strncopy
:
char *data = "02001110000000000"
char dest[4];
strncopy(dest, data, 4);
请注意,strncopy
不会复制空终止字符('\0'
),因此dest
这里不是字符串,它只是一个包含四个字符的数组。如果您希望它是字符串“0200”,则必须将其定义为一个五元素数组,并自己附加'\0'
字符。假设您不需要将字符复制到新数组中(即,可以重复使用相同的分配内存),您可以为此执行一些指针技巧
数组只是指向第一个元素的指针
char firstFour[4] = &data[0];
or
char *firstFour = &data[0];
要从第一个数组中删除元素,请执行以下操作
data = &data[4];
假设您不需要将字符复制到新数组中(也就是说,重用相同的分配内存是可以接受的),您可以为此做一些指针技巧
数组只是指向第一个元素的指针
char firstFour[4] = &data[0];
or
char *firstFour = &data[0];
要从第一个数组中删除元素,请执行以下操作
data = &data[4];
char*newArray=newchar[4]
memcpy(newArray,data,4) char*newArray=newchar[4]
memcpy(newArray,data,4)你研究过吗?为什么你要使用Car数组而不是字符串?如果你使用C++?你研究过吗?为什么你想使用char数组而不是字符串如果你使用C++?< Cal> Char * data =“02001110000000000”< /C>是非法的C++ +斯拉瓦它被禁止,但不是非法的。它应该是const char*
@CJxD它在c++03中被弃用了,现在它是非法的char*data=“020110000000000”
在c++@Slava中是非法的它被弃用了,但不是非法的。它应该是const char*
@CJxD它在c++03中被弃用,它是非法的nowUps,终止\0
?Ups呢,终止\0
呢?