una sirve saber que para numeros numero numerico minuscula mayuscula letras letra isdigit diferenciar dato comprobar como c char alphanumeric

sirve - Determine si char es un num o letra



saber si es numero o letra c# (7)

¿Cómo determino si un char en C como a o 9 es un número o una letra?

¿Es mejor usar:

int a = Asc(theChar);

¿o esto?

int a = (int)theChar


Deberá usar las funciones estándar isalpha() e isdigit() en <ctype.h> .

char c = ''a''; // or whatever if (isalpha(c)) { puts("it''s a letter"); } else if (isdigit(c)) { puts("it''s a digit"); } else { puts("something else?"); }


Ninguno de estos hace algo útil. Use isalpha() o isdigit() de la biblioteca estándar. Están en <ctype.h> .


Normalmente puede verificar letras o números usando condiciones simples

if((ch>=''a'' && ch<=''z'') || (ch>=''A'' && ch<=''Z)) { /*This is an alphabet*/ }

Para los dígitos que puedes usar

if(ch>=''0'' && ch<=''9'') { /*It is a digit*/ }

Pero como los caracteres en C son tratados internamente como valores ASCII, también puede usar valores ASCII para verificarlos.

Cómo verificar si un personaje es un número o una carta


Si (theChar >= ''0'' && theChar <=''9'') es un dígito. Entiendes la idea.


los caracteres son solo enteros, por lo que puedes hacer una comparación directa de tu personaje con los literales:

if( c >= ''0'' && c <= ''9'' ){

Esto se aplica a todos los personajes. Vea su tabla ascii .

ctype.h también proporciona funciones para hacer esto por usted.


<ctype.h> incluye una serie de funciones para determinar si un char representa una letra o un número, como isalpha , isdigit e isalnum .

El motivo por el cual int a = (int)theChar no hará lo que usted desea es que a simplemente mantendrá el valor entero que representa un carácter específico. Por ejemplo, el número ASCII para ''9'' es 57, y para ''a'' es 97.

También para ASCII:

  • Numérico - if (theChar >= ''0'' && theChar <= ''9'')
  • Alfabético -
    if (theChar >= ''A'' && theChar <= ''Z'' || theChar >= ''a'' && theChar <= ''z'')

Eche un vistazo a una tabla ASCII para verlo usted mismo.


C99 estándar en c >= ''0'' && c <= ''9''

c >= ''0'' && c <= ''9'' (mencionado en otra respuesta ) funciona porque C99 N1256 borrador estándar 5.2.1 "Conjuntos de caracteres" dice:

Tanto en los conjuntos de caracteres básicos de origen como de ejecución, el valor de cada carácter después de 0 en la lista anterior de dígitos decimales será uno mayor que el valor del anterior.

ASCII no está garantizado sin embargo.