【发布时间】:2011-04-08 13:35:05
【问题描述】:
如何将一个数组字符拆分为另外两个数组字符? 例如:
字符数组1[9]={10011010}; 字符数组2[5],数组3[5];
现在我想将 1001 放入 array2 并将 1010 放入 array3 我怎么能提出这个要求?
【问题讨论】:
如何将一个数组字符拆分为另外两个数组字符? 例如:
字符数组1[9]={10011010}; 字符数组2[5],数组3[5];
现在我想将 1001 放入 array2 并将 1010 放入 array3 我怎么能提出这个要求?
【问题讨论】:
很多方法。我想到的两个是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;
【讨论】:
您可以使用for loop、memcpy 或 STL 的copy algorithm。
【讨论】:
嗯,你的第一个数组是 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);
【讨论】: