Как получить цифры из значения int и добавить его в массив - PullRequest
0 голосов
/ 30 марта 2019

Я хочу добавить цифру (значение) цифра за цифрой в массив назначения, но как бы я повторил «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.Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 30 марта 2019

Некоторый код, подобный приведенному ниже, будет работать без использования библиотечных функций.

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;
}
1 голос
/ 30 марта 2019

Количество цифр будет наименьшим целым числом, превышающим log10(value).Таким образом, вы точно знаете, какие элементы вашего массива будут заполнены.

С другой стороны, вы можете постепенно формировать свой массив, а затем инвертировать его, если хотите, в обратном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...