Título: expresiones regulares para validacion Publicado por: phantom en 22 Enero 2008, 06:07 am buenas tengo una pequeña duda:
se podrían usar las expresiones regulares para asi validar la entrada de un carácter :huh: ej: printf("introduzca la letra de identificador E-Empleado, C-Cliente, P-Producto"); scanf("%[ECP]",&letra); así lo que consigo es que solo me admita E C y P la cuestión es que cuando no es ninguno de los casos me reconoce basura y quisiera saber si hay alguna forma de ver si esta esa basura en la variable para que asi de ser el caso de que este la basura mostrar un mensaje diciendo a introducido la letra mal vuelva a introducirla gracias de antemano :P Título: Re: expresiones regulares para validacion Publicado por: Flakito81 en 22 Enero 2008, 14:55 pm Se me ocurre algo como esto:
Código: do Suerte! Título: Re: expresiones regulares para validacion Publicado por: phantom en 22 Enero 2008, 17:04 pm mm intento poner pa validarlo y si no es correcto el dato que lo vuelva a pedir pero esque me hace un fantastico y divertido bucle infinito :( alguna idea
Código
Título: Re: expresiones regulares para validacion Publicado por: Flakito81 en 22 Enero 2008, 21:08 pm Ya el post está respondido:
Código: do PD: fíjate mejor en el código y haz alguna traza de forma mental. Suerte! Título: Re: expresiones regulares para validacion Publicado por: Ragnarok en 23 Enero 2008, 00:06 am Flakito81 para hacer luego todos los ifs no hace falta que se curre las expresiones regulares en scanf, que dicho sea de paso, se ven poco por el foro y se agradece.
phantom ¿seguro que te reconoce basura? ¿no tendrás la basura de antes? He estado buscando información, pero las opciones de scanf y printf son de esas cosas que a nadie le apetece documentar, por ejemplo en conclase.net no se menciona. Título: Re: expresiones regulares para validacion Publicado por: cassiani en 25 Enero 2008, 17:41 pm ¡Hola phantom! no se si ya habéis solucionado tu problema, de todas formas igual aporto algo que tal vez os ayude ahora o mas adelante:
Código: }while(letra!='E' || letra !='p' || letra!='C'); Tu code modificado quedaría así: Código: int main () Acá otra forma de hacer lo mismo: Código: #include <stdio.h> Espero que aun os pueda servir, ¡S4lu2! Título: Re: expresiones regulares para validacion Publicado por: Rzone44 en 8 Abril 2011, 20:02 pm Creo que solo les falta liberar memoria.
#include <stdio.h> #include <string.h> int main () { char letra='o'; int repetir; do { repetir = 0; printf("introduzca la letra de identificador E-Empleado, C-Cliente, P-Producto\n"); fflush(stdin); scanf("%[ECP]",&letra); if (letra!= 'E' && letra != 'P' && letra != 'C') { repetir = 1; printf (" Teclea un dato correcto"); } } while (repetir); // o while (repetir == 1) printf("%c",letra); getch(); return(1);} Título: Re: expresiones regulares para validacion Publicado por: leogtz en 8 Abril 2011, 23:23 pm fflush(stdin) tiene un comportamiento indefinido, por tanto no se debe de usar, ya se ha hablado de ello muchas veces.
|