连接两个int数组

时间:2014-01-14 11:53:34

标签: c int concatenation

这可能很简单,但我似乎无法使其发挥作用。

我有:

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

都包含'1'和'0'值(二进制),我想连接它们。

如何将这两个整数组合成一个整数?

3 个答案:

答案 0 :(得分:3)

您需要使用循环或memcpy()

目前还不清楚两个阵列是否100%满,即是否使用了所有元素。如果是,只需:

int string3[200];

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

答案 1 :(得分: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++
}
BTW你真的想使用整数数组吗?你能用字符串吗?

答案 2 :(得分: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中,如果你想要反向字符串矩阵,则反转字符串矩阵。我不确定你是否想要一个新数组,或者将string2连接到string1。我假设你正在加入他们,如果你的数组已满,已经开始使用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');