拆分数组char

时间:2011-04-08 13:35:06

标签: c++ arrays

如何将一个数组char分割为另一个数组char? 例如:

char array1 [9] = {10011010}; char array2 [5],array3 [5];

现在我想把array1中的1001和array3中的1010 我怎么能这个要求?

3 个答案:

答案 0 :(得分:2)

很多方面。我想到的两个问题是memcpystd::copy

#include <cstring>
memcpy(array2, array1, 4);
memcpy(array3, array1+4, 4);

#include <algorithm>
std::copy(array1, array1+4, array2);
stdd::copy(array1+4, array1+8, array3);

从您的数组大小看,您保留的字节多于您需要的字节数。也许这些是字符串,除了是简单的数组?如果是这样,请记住在使用它们之前在数组末尾放置一个空字节:

array2[4] = 0;
array3[4] = 0;

答案 1 :(得分:1)

您可以使用for loopmemcpy或STL copy algorithm

答案 2 :(得分:0)

好吧,你的第一个阵列是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);
相关问题