如何将一个数组char分割为另一个数组char? 例如:
char array1 [9] = {10011010}; char array2 [5],array3 [5];
现在我想把array1中的1001和array3中的1010 我怎么能这个要求?
答案 0 :(得分:2)
很多方面。我想到的两个问题是memcpy
和std::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 loop,memcpy或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);