Ir ao conteúdo
  • Cadastre-se

Validação captcha


Posts recomendados

Preciso criar um captcha em c, mas n sei como fazer a comparação e validação entre o codigo (captcha) que é um inteiro que esta recebendo um vetor de caracteres e entre o que esta sendo lido do teclado que é uma string tipo char. segue o codigo abaixo:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int*geradorNumeros(int vetorCaracteres[62])
{
	int cont1, cont2=0;


	for(cont1 = 48; cont1 <= 57; cont1++) { // numeros
		vetorCaracteres[cont2] = cont1;
		cont2++;
	}

	for(cont1 = 65; cont1 <= 90; cont1++){ // letras maiusculas
		vetorCaracteres[cont2] = cont1;
		cont2++;
	}

	for(cont1 = 97; cont1 <= 122; cont1++){ // letras minusculas
		vetorCaracteres[cont2] = cont1;
		cont2++;
	}

	return vetorCaracteres;


}

int*valoresAleatorios(int vetorAleatorios[6])
{
    int cont;

	srand(time(NULL));
	for(cont = 0; cont < 6; cont++)
	{
		vetorAleatorios[cont]= rand()% 62;
	}

	return vetorAleatorios;

}

void moduloInterativo ()
{   int vetorAleatorios[6], vetorCaracteres[62];
    char codigo[6];
    int*caracteres;
    int*aleatorios;
    int cont;



    aleatorios = valoresAleatorios(vetorAleatorios);
    caracteres = geradorNumeros(vetorCaracteres);

    for(cont = 0; cont < 6; cont++)
    {
       printf("%c", caracteres[aleatorios[cont]]);


    }


    printf("\n\n");





    printf("Digite o codigo exibido para verificação:\n");
    gets(codigo);


}

int comparacao(int code1, char code2[6])
{

}



int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "portuguese");


    moduloInterativo();





























	return 0;
}

 

Link para o comentário
Compartilhar em outros sites

O melhor é você fazer que a capacha seja uma struct, tanto a gerada como a que o usuário digita, logo use memcmp para comparar se as 2 estruturas são iguais em memória.

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

typedef struct{
    char numeros[5];
    char letra;
}Captcha;

int main (){
    Captcha a = { "12345", 'a'};
    Captcha b = { "12345", 'a'};
    
    
    if ( memcmp( &a, &b, sizeof(Captcha)) == 0){
        printf("iguais");
    }

    getchar();
    return 0;
}   

Sobre a validação acho que fica mais fácil assim também, você até pode por tipos diferentes na struct.

Espero ter ajudado, sorte.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...