[ Foro de C ]

Código ASCII de un caracter

11-Aug-2010 13:23
emuletas yp
2 Respuestas

Acabo de descubrir que se puede hacer algo como esto:

#include <stdio.h>

main(){

printf("Introduce una letra\n");

char letra;

getchar(letra);

printf("El código ASCII de la letra %c es %i", letra, letra);

}

Quizás fuera buena idea incluír esta curiosidad en el manual, si no está ya incluído


16-Aug-2010 06:29
Nacho Cabanes (+83)

Tienes razón. Un valor "char" se puede convertir a su valor numérico simplemente usando el código de formato "%i", y no aparece detallado en ningún apartado concreto del manual.  

Quizá el sitio más adecuado sea ampliando el ejemplo 36, en el apartado 4.1, que habla de los códigos de formato de "printf":

/*---------------------------*/
/* Ejemplo en C nº 36:       */
/* c036.c                    */
/*                           */
/* Detalles de "printf"      */
/*                           */
/* Curso de C,               */
/* Nacho Cabanes             */
/*---------------------------*/

#include <stdio.h>

main()
{
 int entero = 1234;
 int enteroNeg = -1234;
 float real = 234.567;
 char letra = 'E';
 int contador;

 printf("El número entero vale %d en notación decimal,\n", entero);
 printf(" y %o en notación octal,\n", entero);
 printf(" y %x en notación hexadecimal,\n", entero);
 printf(" y %X en notación hexadecimal en mayúsculas,\n", entero);
 printf(" y %ld si le hacemos que crea que es entero largo,\n", entero);
 printf(" y %10d si obligamos a una cierta anchura,\n", entero);
 printf(" y %-10d si ajustamos a la izquierda.\n", entero);
 printf("El entero negativo vale %d\n", enteroNeg);  
 printf(" y podemos hacer que crea que es positivo: %u (incorrecto).\n",
   enteroNeg);
 printf("El número real vale %f en notación normal\n", real);
 printf(" y %5.2f si limitamos a dos decimales,\n", real);
 printf(" y %e en notación científica (exponencial).\n", real);
 printf("La letra es %c y un texto es %s.\n", letra, "Hola");
 printf("Podemos poner \"tanto por ciento\": 50%%.\n");
}


16-Aug-2010 12:38
emuletas yp

Que así sea






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)