Comprobar si el char es un numero o una letra

xCoNDoR

Buenas'

Existe alguna forma con la que comprobar si x posicioón de un char es un numero o es una letra ?

EDITO:

Ya he encontrado la respuesta, edito el post y pongo la forma par que al menos sea de utilidad..

la forma de comprobar seria

#include <cctype>

char letra[4];

..
..

if(isalpha(letra[0])) { proceso }

Josekron

Pues en el código Ascii las letras ocupan una posición (del 65 al 122) y los números otra. Pues simplemente comprueba su posición:

char c;

if ((int(c)>=65) && (int(c)<=122))
{
if ((int(c)<91) && (int(c)>96)) // para descartar los /, [, etc que están dentro del mismo rango.
{
//es letra.
}
}

Pues lo mismo con los números.

Saludos.

dagavi

Para comparar con carácteres no deberías tirar de su código directo, si no usar los propios caracteres:

c >= '0' && c <= '9' -> es número

(c >= 'a' && c <= 'z' ) || (c >= 'A' && c <= 'Z' ) -> es letra

((c | 0x20) >= 'a' && (c | 0x20) <= 'z' ) -> es letra, aunque ya nos cargamos el no tener que conocer como se representa los caracteres.

modena

Character.isDigit(c) , Character.isLetter(c) (Java)

Mandarino

es digito -> ('0' <= c && c <= '9' )
es minuscula -> ('z' <= c && c <= 'z' )
es mayuscula -> ('A' <= c && c <= 'Z' )

tOWERR

Nose si te lo han dicho antes, pero con el código ASCII te funcionaría también.
Suerte.

WiLcO

El método mas rápido es con la función isalpha también es cierto que se puede hacer con ASCII pero en mi opinión la programación se basa en hacer una determinada cosa por el camino más corto y mas efectivo, así que yo usaría la primera función antes que el ASCII

8 años después
bejario

gracias me sirvio para mi tfg

afhn

StringUtils.isNumeric?
Hostia que es un post de hace 8 años, a saber si en esa época siquiera existía el StringUtils xd

Tema cerrado

Usuarios habituales

  • afhn
  • bejario
  • WiLcO
  • tOWERR
  • dagavi
  • Josekron
  • xCoNDoR