cómo comparar una variable caracter con un código ascii en C

Iniciado por etcheverrypablol, 2 Febrero 2016, 07:56 AM

0 Miembros y 1 Visitante están viendo este tema.

etcheverrypablol

Hola gente.

Tengo que resolver el siguiente problema:

"Determinar si el carácter asociado a un código introsucido por teclado corresponde a un carácter alfabético, dígito, de puntuación, especial o no imprimible".

Para ello, lo que quiero hacer es comparar la variable donde se almacena el caracter introducido con un cierto rango de caracteres expresados en código ascii, pero no encuentro cómo.

En pascal, si no mal recuerdo, se hace uso del símobolo #, pero en C nosé.

Algunos puede aportar algo para resolver este dilema? jaja

Desde ya gracias!


MAFUS

Mira las funciones de la libreria ctype, está todo lo que buscas.

fary

Puedes programar tu mismo la funcion. Ya sabes que cada carácter equivale a un número del 0 al 255.

Saludos.
Un byte a la izquierda.

MAFUS

Soy de la opinión de que reinventar la rueda es un mal hábito.  Las librerías estándar suelen estar lo más optimizadas y libres de errores posible.

ivancea96

Cita de: MAFUS en  2 Febrero 2016, 11:15 AM
Soy de la opinión de que reinventar la rueda es un mal hábito.  Las librerías estándar suelen estar lo más optimizadas y libres de errores posible.

Sin duda, importante a la hora de programar proyectos serios, pero no a la hora de aprender lenguajes.


Luego, etchevarrypablol, ten en cuenta que un caracter en C, es un dato numérico, sea cual sea la forma mediante la cual, funciones como printf lo muetran en consola. Siendo así, la forma de conocer si un valor está en un rango:
Código (cpp) [Seleccionar]
char c = 'k';
if('a'<=c && c<='z') ...


Bueno, ten en cuenta que 'a' es un caracter, y "a" es una cadena, por si acaso.

furciorifa

Estoy de acuerdo que reinventar la rueda es malo, pero también ayuda mucho a saber cómo funcionan las cosas en cualquier lenguaje.

etcheverrypablol

#6
Hola chicos, disculpen la demora en responder.

Mafus, se que puede haber una librería, pero en mi caso, yo quiero hacer la función. En ese sentido, se que cada caracter se asocia con un número del 0 al 255, pero no sé como expresarlo en el código.




fary, cómo hago para comparar la variable caracter con un rango de caracteres expresados en el cógio ascii sabiendo qué se asocian con esos números.

ivancea96, sé que se puede hacer de esa forma, pero no es la que busco.

Debería ser algo así:
if(var>#70 && var<#90)
{
   puts("El cacarter es tal cosa");
}

fary

Seguro que mirando la tabla ascii lo consigues hacer. Son solo unas comparaciones con if...


Un byte a la izquierda.

etcheverrypablol

Es que no puedo poner
 if(78){
    puts("El caracter es una N");
 }
Lo que preciso saber es qué se ponde adentro de esa condicion, seguro que es algo muy simple, como anteponer un símbolo delante del número que hace referencia al código ascii.

Supongo eso, porque en otros lenguajes como en pascal se hace eso, aunque soy conciente que en C puede ser totalmente distinto.


fary

Cita de: etcheverrypablol en  5 Febrero 2016, 10:35 AM
Es que no puedo poner
 if(78){
    puts("El caracter es una N");
 }
Lo que preciso saber es qué se ponde adentro de esa condicion, seguro que es algo muy simple, como anteponer un símbolo delante del número que hace referencia al código ascii.

Supongo eso, porque en otros lenguajes como en pascal se hace eso, aunque soy conciente que en C puede ser totalmente distinto.

Yo necesito saber como hacer una consulta en SQL, pero si no me pongo a leer nada de SQL, ¿Cómo lo espero hacer?.

Ta pasa lo mismo pero en C, si no sabes hacer una simple comparación con un if, ¿Qué sabes de C?

char c = 78;

if (c == 78)
{
    printf("Si, es una N");
}
Un byte a la izquierda.