GAMBCODES

Validador de hora em linguagem C

Um validador de hora no formato hh:MM. Bem simples e prático. Usa conceitos básicos de ponteiros e expressões regulares. Divirtam-se!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char ler(int *len, char *str);
int A(int *len, char *palavra, char a);
int B(int *len, char *palavra, char b);
int D(int *len, char *palavra, char d);
int E(int *len, char *palavra, char e);
int F(int *len, char *palavra, char f);
int G(int *len, char *palavra, char g);
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
 
	char palavra[1024];
	int len = 0;
	int errCount = 0;
 
	while(1){
 
		system("cls");
 
		printf("\t\t:::::::::: VALIDADOR DE HORA PICA.NET ::::::::::\n\n");
 
		printf("ENTRE COM A HORA NO FORMATO HH:MM: ");
		fflush(stdin);
		scanf("%s",palavra);
 
		if(strcmp("sair",palavra) == 0){
			return 0;
		}
 
		if(strlen(palavra) &gt; 5){
			printf("DATA INVALIDA SEU ANIMAL! NAO SABE O QUE EH UMA DATA?");
			errCount++;
		}else{
			if(A(&amp;len,palavra,ler(&amp;len,palavra))){
				printf("DATA VALIDA!");
				if(errCount &gt; 5){
					printf("\nAleluia! \\o/!");
					errCount = 0;
				}
			}else{
				printf("DATA INVALIDA SEU ANIMAL! NAO SABE O QUE EH UMA DATA?");
				errCount++;
			}
		}
 
		if(errCount &gt; 5){
			printf("\nVerificamos em nosso sistema sua falta de capacidade de digitar uma data!");
		}
		palavra[0] = '\0';
		len = 0;	
		getch();
	}
 
	return 0;
}
 
int A(int *len, char *palavra, char a){
 
	char *palavra_1a = "01";
	char *palavra_1b = "2";
 
	if(strchr(palavra_1a,a)){
		return B(len,palavra,ler(len,palavra));	
	}else if(strchr(palavra_1b,a)){
		return D(len,palavra,ler(len,palavra));	
	}else{
		return 0;
	}
}
 
int B(int *len, char *palavra, char b){
 
	char *p = "0123456789";
 
	if(strchr(p,b)){
		return E(len,palavra,ler(len,palavra));	
	}else{
		return 0;
	} 	
}
 
 
int D(int *len, char *palavra, char d){
 
	char *p = "0123";
 
	if(strchr(p,d)){
		return E(len,palavra,ler(len,palavra));	
	}else{
		return 0;
	} 
}
 
int E(int *len, char *palavra, char e){
 
	char *p = ":";
 
	if(strchr(p,e)){
		return 	F(len,palavra,ler(len,palavra));	
	}else{
		return 0;
	} 
}
 
int F(int *len, char *palavra, char f){
 
	char *p = "012345";
 
	if(strchr(p,f)){
		return 	G(len,palavra,ler(len,palavra));	
	}else{
		return 0;
	} 
 
}
 
int G(int *len, char *palavra, char g){
 
	char *p = "0123456789";
 
	if(strchr(p,g)){
		return 	1;	
	}else{
		return 0;
	} 
 
}
 
char ler(int *len, char *str){
	return (str[(*len)++]);
}

Comments

comments

Categories:   C

Tags:  , ,

Comments