这可能是一个非常简单的问题,但我需要将array [0]和array [1]中的两个int值复制到一个整数中。
例如,如果array [0] = 1且array [1] = 6,我需要整数等于“16”。 数组的任何元素的范围都是0到9。
我有什么机会? 非常感谢你!
答案 0 :(得分:2)
array [0]总是代表10的位置,数组[1]总是代表1的位置吗?数组[0]或数组[1]的值是否大于9或小于0?是否会有数组[2]或数组[3]来表示3位数或4位数?
如果上述问题的答案是“是”,“否”和“否”,那么答案是不是简单算术?
int result = (array[0] * 10) + array[1];
如果未对数据进行预范围检查,则需要添加该步骤。即使数据是经过范围检查的,您也应该考虑添加该步骤,以便更加确定。
在上面的例子中,'10'也是一个幻数。不硬编码10可能是明智的,但可以将其基于数组的大小。考虑有一个数组[2]的情况。 。 。阵列[N]。那么呢?
答案 1 :(得分:1)
一种简单的方法,就是将你的整数转换为字符串,联系,然后再转换,这次是从字符串转换为int。
char s1[30]; // String that will hold the first integer
char s2[15]; // String that will hold the second integer
int intResult;
首先将int转换为string:
sprintf(s1, "%d", array[0]);
sprintf(s2, "%d", array[1]);
将2个字符串加在一起:
s1 = strcat(s1,s2);
然后将字符串结果转换为整数。 intResult = atoi(s1);