我试图获取整数数组的两个元素,并按顺序将它们附加到另一个数组元素中,但只有一个。
EG。 int i [14]所有元素都用数字填充。
我希望i [1]和i [2]存储在一个元素中:temp [0]。
说我[1] = 123而我[2] = 456,我想要temp [0] = 123456。
我尝试使用strcat(),但它只适用于char类型。
有什么建议吗?
编辑 - 我在C中工作,而不是C ++。遗憾。
答案 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
,并添加溢出检查。