这可能很简单,但我似乎无法使其工作。连接两个int数组
我有:
int string1[100];
int string2[100];
两者都含有 '1' 和 '0' 的值(二进制),我想将它们串联。
我如何将这两个整数结合起来得到一个整数?
这可能很简单,但我似乎无法使其工作。连接两个int数组
我有:
int string1[100];
int string2[100];
两者都含有 '1' 和 '0' 的值(二进制),我想将它们串联。
我如何将这两个整数结合起来得到一个整数?
您需要使用循环或memcpy()
。
目前还不清楚这两个数组是否都是100%满的,即是否使用了所有元素。如果是,请执行:
int string3[200];
memcpy(string3, string1, sizeof string1);
memcpy(string3 + sizeof string1/sizeof string1, string2, sizeof string2);
最简单的方法是使用循环。例如:
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++
}
顺便说一句你真的想使用整数数组吗?你可以使用字符串吗?
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');
我想用两个字符串得到一个新数组。而且,它们并不完整;它们包含一些二进制数字和空字符 – user3193834
当然,您也可以使用memcpy函数,但是如果您只需要一些原始代码,我编辑了我的帖子 – tesseract
'man strcat' ... – devnull
只是为了澄清 - 你想要200个元素的另一个数组? –
你知道字符串和整数数组的区别吗? – haccks