将数组的“复制”元素按顺序转换为“int”? C

时间:2012-11-18 22:19:37

标签: c arrays integer

这可能是一个非常简单的问题,但我需要将array [0]和array [1]中的两个int值复制到一个整数中。

例如,如果array [0] = 1且array [1] = 6,我需要整数等于“16”。 数组的任何元素的范围都是0到9。

我有什么机会? 非常感谢你!

2 个答案:

答案 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);