如何从int值中获取数字并将其附加到数组中

时间:2019-03-30 02:18:16

标签: c

我想将数字(值)逐位附加到目标数组中,但是如何向后迭代“ 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”。任何帮助将不胜感激。

2 个答案:

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