validaCPF
Publicado por rafael farias novaes 01/02/2009
[ Hits: 7.173 ]
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); }
ponteirostrab.c - Trabalhando com ponteiros
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (21)
Debian Bookworm para a versão beta Debian 13 Trixie (1)
material de assembly x64 [RESOLVIDO] (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba