这可能很简单,但我似乎无法使其发挥作用。
我有:
int string1[100];
int string2[100];
都包含'1'和'0'值(二进制),我想连接它们。
如何将这两个整数组合成一个整数?
答案 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');