Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 分割数组字符_C++_Arrays - Fatal编程技术网

C++ 分割数组字符

C++ 分割数组字符,c++,arrays,C++,Arrays,如何将一个数组字符拆分为另两个数组字符? 例如: 字符数组1[9]={10011010}; char array2[5],array3[5] 现在我要把1001放在阵列2上,把1010放在阵列3上 我怎样才能收到这个请求?有很多方法。想到的两个是和 您可以使用,或STL。嗯,您的第一个数组是9个字符。如果你把它一分为二,一个必须是5个字符,一个必须是4个字符。这应该可以做到: char array1[9] = {'1', '2', '3', '4', '5', '6', '7', '8', '9

如何将一个数组字符拆分为另两个数组字符? 例如:

字符数组1[9]={10011010}; char array2[5],array3[5]

现在我要把1001放在阵列2上,把1010放在阵列3上
我怎样才能收到这个请求?

有很多方法。想到的两个是和


您可以使用,或STL。

嗯,您的第一个数组是9个字符。如果你把它一分为二,一个必须是5个字符,一个必须是4个字符。这应该可以做到:

char array1[9] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}; // not a null-terminated string
int len = sizeof(array1)/sizeof(array1[0]);
int len1 = len / 2;
int len2 = len - len1;
char* array2 = new char[len1];
char* array3 = new char[len2];

memcpy(array2, array1, len1);
memcpy(array3, array1 + len1, len2);

如果第二个新的抛出,内存会泄漏。当然,但这不是重点。我敢肯定,在人们在网上发布的大多数样本中,你们都能发现类似的问题。例如,您可以使用std::vector,而不关心内存的分配,并且不会遇到这样的问题;我的样本是一个可能解决方案的快速参考。
#include <algorithm>
std::copy(array1, array1+4, array2);
stdd::copy(array1+4, array1+8, array3);
array2[4] = 0;
array3[4] = 0;
char array1[9] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}; // not a null-terminated string
int len = sizeof(array1)/sizeof(array1[0]);
int len1 = len / 2;
int len2 = len - len1;
char* array2 = new char[len1];
char* array3 = new char[len2];

memcpy(array2, array1, len1);
memcpy(array3, array1 + len1, len2);