В свете отредактированного вопроса мой оригинальный ответ (ниже) не самый лучший. Если вам абсолютно необходимо иметь выходные данные в массиве вместо вектора, вы можете начать с ответа GMan, а затем перенести полученные байты в массив. Вы можете сделать то же самое с ответом JohnFx, если найдете в его результатах первую ненулевую цифру.
<ч />
Я предполагаю, что f
имеет тип int
, и в этом случае он не хранит начальные нули.
int f = 100023;
Для начала вам нужно найти необходимую длину массива. Вы можете сделать это, взяв журнал (база 10) f
. Вы можете импортировать библиотеку cmath для использования функции log10
.
int length = log10(f);
int array[length];
length
теперь должно быть 6.
Далее вы можете убрать каждую цифру из f
и сохранить ее в массиве, используя цикл и оператор модуля (%).
for(int i=length-1; i >= 0; --i)
{
array[i] = f % 10;
f = f / 10;
}
Каждый раз в цикле модуль получает последнюю цифру, возвращая остаток от деления на 10. Следующая строка делит f
на 10, чтобы подготовиться к следующей итерации цикла.