Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Char a int

Estas en el tema de Char a int en el foro de C/C++ en Foros del Web. Hola gente quisiera saber como convierto una dato char en int?? se como hacerlo de int a char con atoi() pero no al reves...
  #1 (permalink)  
Antiguo 25/11/2015, 16:14
 
Fecha de Ingreso: abril-2015
Mensajes: 16
Antigüedad: 9 años
Puntos: 0
Char a int

Hola gente quisiera saber como convierto una dato char en int??
se como hacerlo de int a char con atoi() pero no al reves
  #2 (permalink)  
Antiguo 26/11/2015, 02:04
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Char a int

estooo atoi es un acrónimo de Ascii TO Integer, es decir, su función es convertir de char a int... no al revés.

Entiendo entonces que te has liado y que lo que pretendes es convertir de int a char. Para este caso yo te propongo dos opciones: una automática y otra manual.

La opción automática pasa por usar la función sprintf. Esta función es exactamente igual a printf salvo en que el resultado lo almacena en un char* en vez de volcarlo a la pantalla.

Código C:
Ver original
  1. char buffer[10];
  2. sprintf(buffer, "%d", 1050);

La opción manual se basa en la relación entre un caracter que representa un dígito y su correspondencia numérica. Es decir:

Código C:
Ver original
  1. char c = '8';
  2. int numero = c - '0';

Para convertir una secuencia de varios caracteres tienes que incluir un bucle y añadir multiplicaciones por 10 para desplazar cada dígito a su sitio... este código no te lo pongo porque es mejor que primero intentes pegarte tu con ello.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: char, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:35.