Título: validar texto y numero!! Turbo c++ Publicado por: kriz145 en 16 Enero 2012, 05:43 am Buenas noches
tengo un problema, necesito validar numeros y letras: esto es lo que llevo #include <stdio.h> #include <ctype.h> #include <conio.h> char *nom; char *num; main() { clrscr(); printf("ingrese nombre:"); gets(nom); while(*nom) { if (isalpha(*nom)) printf("%c",*nom); else printf("ERROR"); nom++; } getch(); clrscr(); printf("ingrese edad:"); gets(num); while(*num) { if (isdigit(*num)) printf("%c",*num); else printf("ERROR"); num++; } getch(); } pero por ejemplo, quiero que si pido edad y pongo letras me marcara error, quiero que regrese y me lo vuelva a pedir hasta que ponga numero... no se si me explique bien =(. chao!! Título: Re: validar texto y numero!! Turbo c++ Publicado por: rir3760 en 16 Enero 2012, 15:35 pm El programa tal como esta no funcionara correctamente por varios errores críticos.
No quiero sonar como un [CENSORED] de lo mas pedante pero creo que acabas de romper todas (o casi todas) las recomendaciones del tema |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html). Espero no lo tomes a mal (solo es un comentario con humor). Lo primero (si es posible) es cambiar de compilador por uno mas reciente y actualizado, recomendaciones hay muchas, solo tienes que usar el motor de búsqueda de los foros. En cuanto al programa los errores mas importantes son utilizar las variables "nom" y "num" sin antes asignarles un valor (la dirección en memoria retornada por malloc, calloc o realloc). Al no hacerlo el valor inicial de ambas variables es NULL. En cuanto a los bucles una forma mejor es verificar cada carácter. Aquí tienes el problema del espacio blanco antes y después de un numero así como el espacio intercalado en nombres compuestos como "Jose Maria". Bueno, comparas cada carácter y si es valido continuas. Con ello al terminar el bucle basta con revisar si el ultimo carácter procesado es el '\0'. Si es así la cadena es valida. Poco mas o poco menos (para el nombre): Código
Un saludo Título: Re: validar texto y numero!! Turbo c++ Publicado por: bdoX en 16 Enero 2012, 17:55 pm Una manera de validar bien mis entradas de datos, y que me gusta muchisimo, es:
Código
Para que decir con los numeros, es lo mismo. saludOS! |