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