Validador de CPF
Publicado por Marcos (última atualização em 17/01/2013)
[ Hits: 6.595 ]
Exemplo simples de um validador de CPF.
O script recebe um número de CPF e retorna se o número está correto ou qual sequência de dígitos verificadores eram esperados.
#include <stdio.h> #include <stdlib.h> #include <string.h> /*função responsável por converter um caractere compreendido no intervalo de 0 a 9 em inteiro (no mesmo intervalo)*/ int conversor(char valor){ switch(valor){ case '9': return 9; case '8': return 8; case '7': return 7; case '6': return 6; case '5': return 5; case '4': return 4; case '3': return 3; case '2': return 2; case '1': return 1; case '0': return 0; } } void validarCPF(){ int numero[11], dig1,dig2,soma=0,valor,i; char cpf[11];//armazena cpf digitado printf("\nDigite o CPF (sem pontos e traco): \n\n\t>> "); setbuf(stdin,NULL);//limpando buffer do teclado gets(cpf); // convertendo caracteres em int for(i=0;i<11;i++){ numero[i]=conversor(cpf[i]); } // calculando primeiro dígito for(i=0;i<9;i++) soma+=numero[i]*(10-i); valor=soma%11; if(valor==0 || valor==1) dig1=0; else dig1=11-valor; numero[9]=dig1; // calcualndo segundo dígito soma=0; for(i=0;i<10;i++) soma+=numero[i]*(11-i); valor=soma%11; if(valor==0 || valor==1) dig2=0; else dig2=11-valor; // exibindo resultado if(dig1==numero[9] && dig2==numero[10]){ printf("\n\nCPF correto: "); for(i=0;i<11;i++) printf(" %d",numero[i]); } else{ printf("\nProblemas nos digitos verificadores!"); printf("\n\nDigitos verificadores esperados para esta sequencia: %d%d",dig1,dig2); } printf("\n\n\n"); } int main(){ int opcao; do{ printf("\n\tPrograma para validar CPF\n\n"); printf("Selecione uma das opcoes disponiveis: \n"); printf("\n<1> Validar\n<0> Sair\n\n"); scanf("%d",&opcao); switch(opcao){ case 1: validarCPF(); } }while(opcao!=0); return 0; }
Calcular dia da semana a partir de uma data sugerida
Vários pacotes de ping disparados contra o host
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Vc tem um projeto opensource? link? (5)
Olá quais distribuições recomendam para usar no dia a dia. (3)
minha maquina foi desinstalada o firefox eu preciso reinstalar tentei... (6)
Erro na inicialização do Arch Linux. (1)
windows 11 versao 24H2 não aplicando politicas samba4.21.1 GPO (4)