Hay un 'algoritmo' para calcular cada posicion (unidad, decena, centena, etc), es este:
Código C:
Ver originalunidad = (numero % 10);
decena = ((numero % 100) - (numero % 10)) / 10;
centena = ((numero % 1000) - (numero % 100)) / 100;
etc...
Ahora ya sabes como recuperar cada posicion. Ademas tambien sabes que los guarismos de cada posicion solo van del 0 al 9, entonces te creas una lista de textos ordenados segun los valores de los numeros:
Código C:
Ver originalstatic char *TEXTOS[6] = {
"cero", "uno", "dos", "tres", "cuatro", "cinco"
};
Pongo solo 6, tienes que completarlo hastra el nueve que seran los 10 textos. Ahora serializas el 'algoritmo' que te comente arriba y recuperas cada parte:
Código C:
Ver originalint numero = 15423;
int q
, ciclo
, cpow, ppow
;
ciclo = 0;
while(1) {
//calculas las potencias para el algoritmo
if((ppow
= (int)ceil(pow(10, ciclo
))) < 10) { ppow = 0;
}
//unidades
//decenas, centenas, etc
if(ppow > 0) {
q -= numero % ppow;
q /= ppow;
}
//final del numero
if(!q) break;
//recuperas el numero de la lista de textos
ciclo++;
}
A ver si te sirve de ayuda
Saludos
vosk