martes, 31 de marzo de 2009

[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

No hay comentarios:

Populares Siempre