如何将两个数组元素(int)附加到一个数组元素(int)中?

时间:2014-03-29 02:51:55

标签: c arrays

我试图获取整数数组的两个元素,并按顺序将它们附加到另一个数组元素中,但只有一个。

EG。 int i [14]所有元素都用数字填充。

我希望i [1]和i [2]存储在一个元素中:temp [0]。

说我[1] = 123而我[2] = 456,我想要temp [0] = 123456。

我尝试使用strcat(),但它只适用于char类型。

有什么建议吗?

编辑 - 我在C中工作,而不是C ++。遗憾。

2 个答案:

答案 0 :(得分:0)

不需要为此使用字符串函数,你可以使用数学,这样更有效:

temp[0] = pow(10, int(log10(i[2]))) * i[1] + i[2]

我的想法是弄清楚i [2]中有多少小数位(如果i [2]为456则为3),将10的幂提高到1000,这是倍增因子然后应用于i [1] ],所以它是这样的:

1000 * 123 + 456 == 123456

答案 1 :(得分:-1)

在您的示例中:temp[0] = i[1] * 1000 + i[2];

一般情况下,您可能希望使用任意长度的i[2]。所以你需要乘以10的正确幂。

这是一种方法:

int output = i[1];
for ( int x = i[2]; x; x /= 10 )
    output *= 10;
output += i[2];

执行此操作时,请注意int只能保存最高INT_MAX(通常为2147483647)的值。如果你溢出这个,那么行为是未定义的。请考虑使用unsigned long long,并添加溢出检查。