我想将数字(值)逐位附加到目标数组中,但是如何向后迭代“ i”?我说这是因为我想使用v / 10 ^ i%10,这将使我得到我想使用i的任何地方的数字,其中i = 0是低位数字,v是值。这是我到目前为止所做的:
value = va_arg( ap, int);
//value is the int value
while(value > 0) {
unsigned int digit1 = value / pow(10,i) % 10
append( &dest, &len, &cap, digit1 + 048);
}
附加部分可以忽略,因为它与最后一个参数无关,与问题无关。最后一个参数需要一个字符。由于不确定如何迭代i,因此未设置“ i”。任何帮助将不胜感激。
答案 0 :(得分:1)
位数将是大于log10(value)
的最小整数。因此,您确切知道要填充数组的哪些元素。
或者,您可以递增地形成数组,然后以相反的顺序反转它。
答案 1 :(得分:1)
下面的某些代码可以使用库函数来工作。
int value = 234873485;
int digit;
int tmpValue = value;
int i = 0;
int arr[10] = {0};
while (tmpValue > 1) {
tmpValue /= 10;
i++;
}
tmpValue = value;
while (tmpValue > 1) {
digit = tmpValue % 10;
printf("%d\n", digit); // may be replaced to append array
arr[i--] = digit; // something like this one
tmpValue /= 10;
}