2014-01-14 70 views
-2

这可能很简单,但我似乎无法使其工作。连接两个int数组

我有:

int string1[100]; 
int string2[100]; 

两者都含有 '1' 和 '0' 的值(二进制),我想将它们串联。

我如何将这两个整数结合起来得到一个整数?

+1

'man strcat' ... – devnull

+1

只是为了澄清 - 你想要200个元素的另一个数组? –

+1

你知道字符串和整数数组的区别吗? – haccks

回答

2

您需要使用循环或memcpy()

目前还不清楚这两个数组是否都是100%满的,即是否使用了所有元素。如果是,请执行:

int string3[200]; 

memcpy(string3, string1, sizeof string1); 
memcpy(string3 + sizeof string1/sizeof string1, string2, sizeof string2); 
0

最简单的方法是使用循环。例如:

int concatenated[200],i,j; 
for(i=0,j=0;j<100;j++) 
{ 
concatenated[i]=string1[j]; 
i++; 
} 

for(j=0;j<100;j++) 
{ 
concatenated[i]=string2[j]; 
i++ 
} 

顺便说一句你真的想使用整数数组吗?你可以使用字符串吗?

0
int i=0,j=0; 
//first find where string1 ends, where the '\0' character is. 
//then add string 2 from that point until we reach the '\0' of string 2. 
while(string1[i] != '\0') 
i++; 
while((string1[i++] = string2[j++]) != '\0'); 

这增加了串2串1,逆矩阵的字符串,如果你想用另一种方式round.I如果你想要一个新的数组我不知道,或者加入到字符串2字符串1。我假设你加入他们在一起,如果你的数组已满已经开始与string1 [200];那么你不需要一个新的数组。

编辑因为你想要一个新的数组。

int new_array[200] = {0}; 
int i=j=k =0; 
while((new_array[i++] = string1[i++]) != '\0'); 
i--; 
while((new_array[i++] = string2[k++]) != '\0'); 
+0

我想用两个字符串得到一个新数组。而且,它们并不完整;它们包含一些二进制数字和空字符 – user3193834

+0

当然,您也可以使用memcpy函数,但是如果您只需要一些原始代码,我编辑了我的帖子 – tesseract