我想将一个整数转换为数组,使其看起来像下面这样:
int number = 123456 ;
int array[7] ;
得到的结果是:
array[0] = 1
array[1] = 2
...
array[6] = 6
你不能简单地“转换”它。整数在软件中不是用十进制表示的。因此,您想要的各个数字不存在,它们必须被计算。
那么,对于任意一个数字,如何确定数字1的数量呢?
我们可以除以10,然后取余数:对于123,除法会给出12,然后余数为3。所以我们有3个数字1。12告诉我们,在个位数之后我们有什么,因此它可以成为下一次迭代的输入。我们拿出它,除以10,得到1和余数2。因此,我们在十位上有2,还剩1个百位数要处理。将其除以10,得到零和余数1。因此,我们在百位上得到1,在十位上得到2,在个位上得到3。最后一次除法返回零,我们完成了。
请参考 Stack Overflow 上的问题 Language showdown: Convert string of digits to array of integers?,其中包括 C/C++ 版本(以及其他语言)。