Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Manejando la tabla ASCII en C (https://www.clubdelphi.com/foros/showthread.php?t=39480)

aeff 21-01-2007 15:04:13

Manejando la tabla ASCII en C
 
hola amigotes, tengo una curiosidad que se me está volviendo una necesidad, el problema es que necesito saber en C cual es el equivalente de las funciones CHR(X: Byte) y ORD(X: Ordinal) de Delphi.

por ejemplo: Chr(65) devuelve el caracter 'A',

y por ejemplo:

var
y: Char;
begin
y := 'a';
... := Chr(Ord(y));
...
end;

podemos ver que Ord(y) nos devuelve 97 que es el código ASCII de la 'a';

me entienden???

gracias de antemano y un gran saludo

darknesrul 22-01-2007 03:45:46

La realidad es que en C no te hacen falta estas funciones. Cuando declaras una variable de tipo char le podes asignar tanto un caracter como un codigo ascii y el resultado es el mismo.
Igualmente cuando obtenes el valor de una variable char podes obtener el caracter o su codigo ascii haciendo referencia al mismo nombre de variable.
Aca te dejo un ejemplo que seguro te queda mas claro:

Código:

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    char c= 97; //aca se le asigna el caracter cuyo codigo ascii es 97
    cout<<c<<endl; //esto te va a imprimir "a"
    system("PAUSE");
    return EXIT_SUCCESS;
}

Si ahora por el contrario haces:

Código:

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    char c= 'a'; //aca le asignas el caracter 'a'
    int asc= c; //en la variable asc queda guardado el valor ascii de c
    cout<<asc<<endl; //esto te va a imprimir "97"
    system("PAUSE");
    return EXIT_SUCCESS;
}

Espero que se entienda.... :P

Ñuño Martínez 22-01-2007 11:14:49

Con permiso, lo traduzco a C "puro".
Código:

#include <stdio.h> /* printf */
#include <stdlib.h> /* EXIT_SUCCESS */

int main(int argc, char *argv[])
{
    char c= 97; /* aca se le asigna el caracter cuyo codigo ASCII es 97 */
    printf ("%c\n", c); /* esto te va a imprimir "a" */
    return EXIT_SUCCESS;
}

Código:

#include <stdio.h> /* printf */
#include <stdlib.h> /* EXIT_SUCCESS */

int main(int argc, char *argv[])
{
    char c= 'a'; /* aca le asignas el caracter 'a' */
    int asc= c; /* en la variable asc queda guardado el valor ASCII de c */
    printf ("%d\n", asc); /* esto te va a imprimir "97" */
    return EXIT_SUCCESS;
}

Ya'stá. No es por empezar una guerra santa, pero es que pedía C y no C++, y no es lo mismo.

aeff 22-01-2007 15:26:24

ni me lo inmaginaba
 
EPAA!! colegas, dieron en el punto exacto, muchas gracias por la ayuda,
realmente era lo que necesitaba.

saludos!!!

darknesrul 22-01-2007 18:02:47

Cita:

Empezado por Ñuño Martínez
Ya'stá. No es por empezar una guerra santa, pero es que pedía C y no C++, y no es lo mismo.

jaja.... no hay problema, la verdad que ni me fije si era C o C++.... igual hace tanto que no uso la funcion printf que no me acordaba ni como se usaba.... :D


La franja horaria es GMT +2. Ahora son las 18:18:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi