Test Foro de elhacker.net SMF 2.1

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:


int main() {
    char c;
    int i;
    c = getchar();
    i = (int)c;

    printf("Valor numérico de %c es %i", c, i);
    return 0;


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:
#include <stdio.h>

int main ( int argc, char**argv)
{
  char letra = 'A'; //Letra A mayúscula que es 65 en decimal.
  printf("La letra imprimida como caracter es: %c\n",letra);//Aquí el especificador de formato es %c de carácter.
  printf("La letra imprimida como su valor ASCII en sistema decimal es: %d", letra); //Aquí el especificador de formato es %d de decimal.
  return 0;
}

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:
char letra = 'A';
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