Validador de Cartão de Credito
Publicado por Djames Suhanko 29/01/2006
[ Hits: 18.691 ]
Homepage: http://phantomclone.com
Um validador mais ou menos pra validar cartão de crédito. Leia o código online para copiar os cabeçalhos.
#include <stdio.h>
#include "banco.h"
#include "tipo.h"
// Criado por: Djames Suhanko
//os cabeçalhos estão na parte de baixo do codigo
// Funcao para ler o cartao
digcart() {
printf("Digite seu cartao (1234-1234-1234-1234 ou 1234123412341234)\nCartao: >> ");
fflush(NULL);
scanf("%s",&lercartao);
printf("\e[H\e[2J");
       }
//converter para numerico e remover caracteres nao-numericos
convform() {
         int a=0;
        for (i=0; i<20;i++)
         {
         if (lercartao[i] == '.' || lercartao[i] == '-')
            {
            i=i+1;
            }
         cartaolimpo[a] = lercartao[i]-48;
         a = a+1;
         }
        }
//multiplica posicao impar , soma aos demais numeros e valida
multi(){
     for (i=0;i<15;i++)
      {
      acum=cartaolimpo[i]*2;
      if (acum >9)
         {
         acum=acum-9;
         }
      total=total+acum;
      i=i+1;
      }
   for (i=1;i<16;i++)
      {
      total=total+cartaolimpo[i];
      i=i+1;
      }
int modulo;
      modulo=total%10;
      if (modulo == 0)
      {
      if (total<150)
         {
         printf("Cartao: ");
         for (i=0;i<16;i++)
            {
            if (i == 4 || i == 8 || i == 12 )
            {
            printf(" ");
            }
            printf("%d",cartaolimpo[i]);
            }
            printf("\n");
         printf("Numero valido\n\n");
         }
      }
      else
         {
         printf("Cartao Invalido\n\n");;
         }
     }
main()
{
digcart();
convform();
multi();
tipo();
//banco();
return (0);
}
//banco.h 
/*
char lercartao[17];
int cartaolimpo[19];
int total, acum;
int i;
int CityBank[20]={4, 1, 2, 8, 4, 0, 1, 3, 4, 2, 7, 1, 4, 5, 5, 6};
int Bradesco[10]={4, 0, 9, 6, 4, 5, 5, 1};
int Real[6]={4, 9, 1, 6};
banco(){
      printf("");
      }
*/
//tipo.h
/*
tipo(){
   // identifica o tipo do cartao
   if (cartaolimpo[0] == 3)
      {
      printf("Tipo: American Express\n");
      }
   else if (cartaolimpo[0] == 4)
      {
      printf("Tipo: VISA\n");
      }
   else if (cartaolimpo[0] == 5)
      {
      printf("Tipo: MasterCard\n");
      }
   else if (cartaolimpo[0] == 6)
      {
      printf("Tipo: Discover\n");
      }
   else
      {
      printf("Operadora invalida\n");
      }
   }
*/
Divisores de n no intervalo [a,b]
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









