Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Danirs en 23 Octubre 2012, 21:11 pm



Título: Duda con funciones en C.
Publicado por: Danirs en 23 Octubre 2012, 21:11 pm
Buenas!

Por mas que busco no encuentro el nombre de la funcion que cambia de letras a valores ASCII (A = 65 por ejemplo), alguien me podria hechar una mano?


Gracias!  ;D   


Título: Re: Duda con funciones en C.
Publicado por: satu en 23 Octubre 2012, 21:25 pm
Hola!!

No hace falta ninguna función, puedes hacer un casting:

Código
  1. int main() {
  2.    char c;
  3.    int i;
  4.    c = getchar();
  5.    i = (int)c;
  6.  
  7.    printf("Valor numérico de %c es %i", c, i);
  8.    return 0;
  9.  

Saludos


Título: Re: Duda con funciones en C.
Publicado por: Caster en 23 Octubre 2012, 21:31 pm
Es la funcion toascii de la libreria <ctype.h>

http://c.conclase.net/librerias/?ansimac=toascii

Saludos


Título: Re: Duda con funciones en C.
Publicado por: avesudra en 23 Octubre 2012, 21:33 pm
Es que no es necesaria una función para lo que pides.Para eso normalmente se imprime el carácter directamente como entero.
Ejemplo:
Código
  1. #include <stdio.h>
  2.  
  3. int main ( int argc, char**argv)
  4. {
  5.  char letra = 'A'; //Letra A mayúscula que es 65 en decimal.
  6.  printf("La letra imprimida como caracter es: %c\n",letra);//Aquí el especificador de formato es %c de carácter.
  7.  printf("La letra imprimida como su valor ASCII en sistema decimal es: %d", letra); //Aquí el especificador de formato es %d de decimal.
  8.  return 0;
  9. }
PD: Ni siquiera hace falta un casting (conversión) como dice Satu , podrías asignar el valor de un carácter a un entero sin problema alguno de esta manera:
Código
  1. char letra = 'A';
  2. int letraValor = letra; //No es necesario un casting ya que un char es un entero de 1 byte.


Título: Re: Duda con funciones en C.
Publicado por: do-while en 23 Octubre 2012, 21:35 pm
¡Buenas!

No te hace falta ninguna funcion. Un char es un valor entero entre -128 y 127, y un unsigned char un valor entre 0 y 255.

Si tienes la letra 'A' puedes asignarsela a un entero tal cual, sin ningun problema o si quieres saber el ascii lo imprimes con %d en lugar de %c. En C++ para imprimir el valor numero tendras que hacer cast a char o unsigned char.

¡Saludos!

P.D: Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.


Título: Re: Duda con funciones en C.
Publicado por: Danirs en 23 Octubre 2012, 21:39 pm
Muchas gracias por responder pero aunque se pueda hacer sin funcion queria saber de su existecia y me ha quedado claro con la funcion toascii se puede de todas maneras gracias


Título: Re: Duda con funciones en C.
Publicado por: rir3760 en 24 Octubre 2012, 02:21 am
Solo agregar que la función "toascii" no es parte de la biblioteca estándar de C.

Un saludo