obtener un char por cada numero de un int

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

obtener un char por cada numero de un int

Notapor migueleitorone » Lun Nov 15, 2010 1:52 pm

Buenos dias, tengo una pequeña duda aver si me podeis ayudar con esto:

Necesito mostrar en un array de caracteres un numero entero del que no se el valor. El problema es que si el numero entero es de mas de una cifra, no se como introducir cada una de las cifras en una casilla del array.

He pensado en convertir el int a char y luego acceder a cada uno de los valores por separado, pero no se como hacerlo :S

seria algo asi:
Código: Seleccionar todo
if(numero >= 0 && numero < 10 )
{
   char numero =numero convertido a char;
}
else if(numero >= 10 && numero < 100)
{
   char numero1 = primera cifra convertida a char;
   char numero2 = segunda cifra convertida a char;
}
etc.



gracias :D
migueleitorone
 
Mensajes: 88
Registrado: Mié Ago 18, 2010 2:59 pm
Ubicación: Barcelona, España

Re: obtener un char por cada numero de un int

Notapor Juanxo » Lun Nov 15, 2010 2:26 pm

se puede hacer iterativo con un while:

Código: Seleccionar todo
int numero = n;
vector<char> cadenaNum;

while (numero >= 10)
{
  cadenaNum.push_front(numero % 10)
  numero /= 10
}

//Tenemos que añadir el ultimo número manualmente
cadena.push_front(numero % 10);


Si no recuerdo mal, vector no tiene un push_front porque es asquerosamente lento. Tienes varias opciones:
- Calcular el numero de cifras que va a tener el numero:

Código: Seleccionar todo
cifras = 1;
while (numero_temp >= 10)
{
++cifras;
numero_temp /= 10;
}
cadenaNum.reserve(cifras);
for (int i = cifras -1; i >= 0; ++i){
  cadenaNum[i] = numero % 10;
  numero = (numero > 10) ? numero / 10 : numero;
}


- Almacenarlo con push_back (quedaría al reves) y luego darle la vuelta al vector
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: obtener un char por cada numero de un int

Notapor migueleitorone » Lun Nov 22, 2010 2:31 pm

gracias juanxo por la ayuda :D
migueleitorone
 
Mensajes: 88
Registrado: Mié Ago 18, 2010 2:59 pm
Ubicación: Barcelona, España


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado