Seraphinux
“Lloramos por el lamento de un pájaro pero no por la sangre de un pez, benditos aquellos que tienen voz.”
October 17th, 2008
Visitada: 218 veces, 4 en este dia.

C: isNumerico, isAlpha, etc… para cadenas

Problema

Necesitas comprobar que todos los elementos de un array sean de un tipo determinado (AlphaNumerico, Numerico, etc…)

Solucion


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int
isNumeric(const char *val)
{
  int i = 0, s = 0;

  for(i = 0; i < strlen(val); i++)
    if(isdigit(val[i]) == 0)
      s = -1;

  return s;
}

int
isAlpha(const char *val)
{
  int i = 0, s = 0;

  for(i = 0; i < strlen(val); i++)
    if(isalnum(val[i]) == 0)
      s = -1;

  return s;
}

int
main(int argc, char *argv[])
{
  char datos_num[11] = "0123456789";
  char datos_alpha[11] = "0ABCDEFGHI";
  char datos_mal[11] = "0A;Z56T:-?¿";

  //Salida: Es numerico: 0
  printf("Es numerico: %d", isNumeric(datos_num));
  //Salida: Es numerico: -1
  printf("Es numerico: %d", isNumeric(datos_alpha));
  //Salida: Es numerico: -1
  printf("Es numerico: %d", isNumeric(datos_mal));

  //Salida: Es alpha: 0
  printf("Es alpha: %d", isAlpha(datos_num));
  //Salida: Es alpha: 0
  printf("Es alpha: %d", isAlpha(datos_alpha));
  //Salida: Es alpha: -1
  printf("Es alpha: %d", isAlpha(datos_mal));

  return 0;
}

Nota

Como fácilmente te podras dar cuenta solo extendimos la funcionalidad de las funciones “ctype.h” de caracteres a cadenas. Por tanto puede tambien extender la funcionalidad de funciones tales como: isascii, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, toascii.

Posts Relacionados

Dejanos un comentario.