Validador de CPF
Publicado por Marcos (última atualização em 17/01/2013)
[ Hits: 6.703 ]
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; }
Exceções em C através de try-throw-catch
Programa que Exibe centro da tela
Conciliando ZRAM Swap com Swap em arquivo ou partição
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Dicas para encontrar games Indies diferentes e criativos
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Ajuda com o Debian 13 - Video hibrido geforce 940 mx Wayland OFF (2)
Problema com impressoras de rede (1)
Rust é o "C da nossa geração"? (10)