validaCPF
Publicado por rafael farias novaes 01/02/2009
[ Hits: 7.294 ]
Homepage: http://www.vivaolinux.com.br/perfil/verPerfil.php?login=bfmano
Valida o CPF.
/* Name: Aramis K Kaminski Copyright: Aramis K Kaminski Author: ramis K Kaminski Date: 16/04/08 23:02 Description: Função valida CPF */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <conio.h> //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////Declara Funções////////////////////////////////// int validaCPF(char cpf[11]); //////////////////////////////FIM de Declaração///////////////////////////////// /////////////////////////////Inicio do MAIN///////////////////////////////////// int main() { char cpf[11]; int i,validade; printf("Digite o CPF a ser validado : "); for(i=0; i<11; i++) { cpf[i]=getche(); if(i==8) { printf("-"); } } validade=validaCPF(cpf); if(validade==1) printf("\tCPF DIGITADO E VALIDO\n\n"); else printf("\tCPF DIGITADO NAO E VALIDO\n\n"); system("pause"); return 0; } //////////////////////////////FIM do MAIN/////////////////////////////////////// //////////////////////////Inicio da Função validaCPF//////////////////////////// /*CONVERTE DE CHAR PARA INT*/ int validaCPF(char cpf[11]) {int i=0,k,j,validade,soma=0,cpf2[11],cpf3[9],cpf2_1[10],cpfdv[11]; char aux[1]; for(i=0; i<11; i++) { aux[0]=cpf[i]; cpf2[i]=atoi(aux); } printf("\n\n"); ////////////////////////////////////////////////////////// /*IMPRIMI O CPF DIGITADO*/ printf("O CPF digitado foi : "); for(i=0; i<11; i++) { printf("%d",cpf2[i]); if(i==8) { printf("-"); } } printf("\n\n"); ////////////////////////////////////////////////////////// /*FAZ O CALCULO DO PRIMEIRO DV*/ i=0; for(k=10; k>1; k--) { cpf3[i]=cpf2[i]*k; soma=soma+cpf3[i]; i++; } soma=soma%11; soma=11-soma; //////////////////////////////////////////////////////////// for(i=0; i<9; i++) { cpf2_1[i]=cpf2[i]; } /////////////////////////////////////////////////////////// cpf2_1[9]=soma; soma=0; /////////////////////////////////////////////////////////// /*FAZ O CALCULO DO SEGUNDO DV*/ i=0; for(j=11; j>1; j-- ) { cpf3[i]=cpf2_1[i]*k; soma=soma+cpf3[i]; i++; } soma=soma%11; soma=11-soma; cpf2_1[10]=soma; ///////////////////////////////////////////////////////////// /*VERIFICA SE O CPF NAO TEM NUMEROS REPITIDOS*/ int num=0,num1=0; for(i=0; i<9; i++) { for(num1=1; num1<12; num1++) { for(num=0; num<11; num++) { cpfdv[num]=num1; if(cpf2[0] == cpfdv[0] && cpf2[1] == cpfdv[1]) if(cpf2[2] == cpfdv[2] && cpf2[3] == cpfdv[3]) if(cpf2[3] == cpfdv[3] && cpf2[4] == cpfdv[4]) if(cpf2[5] == cpfdv[5] && cpf2[6] == cpfdv[6]) if(cpf2[7] == cpfdv[7] && cpf2[8] == cpfdv[8]) if(cpf2[9] == cpfdv[9] && cpf2[10] == cpfdv[10]) return (validade=0); } } } /////////////////////////////////////////////////////////////// /* VERIFICA OS DV E RETORNA 0 OU 1*/ if(cpf2[9] == cpf2_1[9] && cpf2[10] == cpf2_1[10]) validade=1; else validade=0; return (validade); }
EXPRESSÕES ARITMÉTICAS - PARTE 2
janelinha para executar comandos com system(), C/GTK
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
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (8)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta