[C con Clase] convertir un caracter a int

Steven R. Davidson vze266ft en verizon.net
Mie Mar 12 04:45:25 CET 2008


Hola Nestor,

nestor wrote:
> quiero saber si alguien sabe como convertir un char en un int: lo que
> quiero hacer es que el usuario digite A, y que el programa le
> devuelva su equivalente en int.
> 
> lo que logre hacer es lo sig. pero no estoy seguro de que este
> correcto. en el el usuario dijita ´0´ y el programa le devuelve 48,
> que es el valor ANSI
> 
> #include<stdio.h>
> main(void)
> {
> 
> int c;
> printf("Digite un caracter cualquiera\n");
> c=getchar();
> printf("%d",c);
> getch();
> clrscr();
> return 0;
> }

Con conversión, realmente quieres decir interpretar y cambiar de 
representación de 'char' a su valor numérico en 'int'. Para ello, sólo 
tienes que restar 48. Si analizamos los valores, vemos que la fórmula es:
valor = car - 48

Algunos valores son:

  Carácter | Valor
----------+-------
  48 ('0') |  0
  49 ('1') |  1
  50 ('2') |  2
  .
  .
  .

En el código fuente, sugiero usar '0' en lugar de 48; queda más claro la 
intención que tienes:

printf( "%d", c-'0' );


Espero haber aclarado la duda.

Steven






Más información sobre la lista de distribución Cconclase