2016-07-28 36 views

回答

2

你可以使用strncopy

char *data = "02001110000000000" 
char dest[4]; 
strncopy(dest, data, 4); 

注意strncopy不会复制空终止字符('\0'),所以这里dest不是字符串,它只是有四个char秒的阵列。如果你想要它是字符串“0200”,你必须将它定义为一个五元素数组并且自己附加'\0'字符。

+1

char * data =“02001110000000000”'在C++中是非法的 – Slava

+0

@Slava它已被废除,但不是非法的。它应该是'const char *' – CJxD

+1

@CJxD它在C++ 03中被弃用,现在是非法的 – Slava

0

假设你不需要拷贝将字符拷贝到你的新数组中(也就是说可以重复使用相同的分配内存),你可以为此做一些指针技巧。

数组只是指向第一个元素的指针。

char firstFour[4] = &data[0]; 
or 
char *firstFour = &data[0]; 

为了除去从第一数组中的元素,做

data = &data[4]; 
0

字符* newArray =新的char [4]; (新数组,数据,4);

+0

Ups,终止'\ 0'怎么办? –

相关问题