2014-01-14 107 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