[C] digit "Determinacion si un caracter es Digito o no"

6.1 Escriba una función dígito que determine si un carácter es uno de los dígitos 0,1,2,...9.

En la librería ctype.h se encuentra ya esa función pre programada como isdigit()

Descargar digit.c 224 B

#include<stdio.h>

#include<ctype.h>
 
int main() {
char c;
printf("Ingrese un digito: ");
if(isdigit(getchar())) {
printf("\nSi es digito!\n");
}
else {
printf("\nNo es digito!\n");
}
return 0;
}

Ahora aqui la muestra con una función tal y como dice el ejercicio en este ejemplo con if

Descargar digit01.c 322 B

#include<stdio.h>
 
int esdigito(int);
 
int main() {
char c;
printf("Ingrese un digito: ");
if(esdigito(getchar())) {
printf("\nSi es digito!\n");
}
else {
printf("\nNo es digito!\n");
}
return 0;
}
 
int esdigito(int c) {
if(c>= '0' && c<= '9')
return 1;
else
return 0;
}

Y Ahora lo mismo pero en lugar de if seria Operador Ternario

Descargar digit02.c 300 B

#include<stdio.h>
 
int esdigito(int);
 
int main() {
char c;
printf("Ingrese un digito: ");
if(esdigito(getchar())) {
printf("\nSi es digito!\n");
}
else {
printf("\nNo es digito!\n");
}
return 0;
}
 
int esdigito(int c) {
return (c>= '0' && c<= '9') ? 1 : 0;
}

Creo que es posible hacerlo con Expresiones regulares, sin embargo en mi opinión y para este caso seria lo mas optimo que se puede escribir la función.

Saludos

--
- Anon

Comentarios

Entradas populares de este blog

Clave WPA2 por Defecto de equipos TotalPlay (Huawei HG8245H)

Cable modem Ubee - WPA2 y WPS por defecto