[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