Я пытаюсь создать функцию, которая будет принимать int и отдельно возвращать крайнюю левую цифру и оставшуюся часть числа.
int idigitizer(int *number) {
int i = 1;
int head = 0;
int tmp = 0;
tmp = *number;
while (tmp > 9) {
if ((tmp/i) < 10) {
head = tmp/i;
*number = *number - (head*i);
return head;
} else {
i = i*10;
}
}
number = 0;
return tmp;
}
idigitizer возвращает крайнюю левую часть номера, а * номер будет содержать остаток.
У меня будет основной цикл, который будет продолжать вызывать idigitizer, пока все цифры номера не будут разделены.
Дело в том, что я не знаю, как обрабатывать нули и как правильно завершить этот процесс, когда это будет сделано с последней цифрой. Любая помощь приветствуется. Заранее спасибо.
РЕДАКТИРОВАТЬ: чтобы сделать его более понятным. Я не хочу, чтобы возможные нули в середине числа терялись. Если я получу число 100047 в качестве ввода, я хочу, чтобы idigitizer вернул:
return - *number
100047
1 00047
0 0047
0 047
0 47
4 7
7