You can use a loop and % 10
to extract each digit.
An outer loop from 0 to 9 could be used to test if the digit exists. If it exists, print it.
In pseudo code:
n = integer // 51234
FOR digit = 0 TO 9
temp = n
REPEAT
IF temp % 10 = digit THEN PRINT digit
temp /= 10
UNTIL temp = 0
Edit: This test in gcc shows that it handles zeros and repeated digits:
$ cat sortdigits.c
#include <stdio.h>
main () {
int n,digit,temp;
n = 43042025;
for (digit=0;digit<9;digit++)
for (temp=n;temp>0;temp/=10)
if (temp%10==digit) printf("%d",digit);
printf("
");
}
$ ./sortdigits
00223445
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…