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.