Validador de CPF
Publicado por Marcos (última atualização em 17/01/2013)
[ Hits: 6.820 ]
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;
}
Pra quem gosta de RPG. Um sistema de lutas.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (10)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









