我正在尝试创建一个函数,该函数将采用 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 返回数字的最左边部分,*number 将携带其余部分。我将在我的 main 中有一个循环,它将继续调用 idigitizer,直到号码的所有数字都分开。问题是我不知道如何处理零以及如何在完成最后一位数字时使该过程正确终止。欢迎任何帮助。提前致谢。
编辑:为了更清楚。我不希望数字中间可能出现的零丢失。如果我得到数字 100047 作为输入,我希望 idigitizer 返回:
return - *number
100047
1 00047
0 0047
0 047
0 47
4 7
7