======================  Valida CPF  ===================

 OTIMIZADO PARA QUALQUER NAVEGADOR

Home Aulas Professores Tutoriais Código fonte executáveis Exercícios C++ Meus Favoritos Linux

Para fazer Download do programa valida_cpf.exe

/*Esta é uma função para validar CPF, em código C++ você pode salvá-la como uma biblioteca e usar esta função em qualquer programa que você criar. Lembrando-se que o parâmetro de entrada é uma string (Vetor de caracteres) com os 11 digitos do CPF em formato somente de caracteres numéricos (xxxxxxxxxxx), ou com a mascara de CPF(xxx.xxx.xxx/xx). A função retorna 0 para Inválido ou 1 para Válido, você pode alterar a função para que ela retorne um valor boleano. Para teste basta descomentar a função main() no final desta função, salvar o arquivo com extensão cpp e compilar.

*/

 

//Inclusão de bibliotecas

//#include <iostream>
//#include <conio>
//#include <stdio.h>
#include <string.h>     //Função strcmpi()

//Função valida_cpf: Recebe uma string por cópia e verifica se é de um cpf válido, retorna //verdadeiro (diferente de 0), se o CPF é válido, ou falso (0), se o CPF não é válido

int valida_cpf(char cpfaux[])

{

int x,y,i,j;
int cpf[11];
j=strlen(cpfaux);
if(!(j!=11||j!=14))

return 0; //Falso
j=0;
for (i=0; cpfaux[i]!='\0'; i++)
{

if(cpfaux[i]>47&&cpfaux[i]<58)

{

cpf[j] = (cpfaux[i]-48);

j++;
}

}

//Avalia se todos os dígitos do cpf não são repetidos

for(i=1;i<10;i++)

{

j=0;

while(cpf[j]==i&&j<11)

j++;

if(j>10)

return 0;
}
//Gera digitos verificadores e armazena em x e y para comparação
j=0;
for (i=10; i>1; i--)

j+= (i * cpf[10-i]); //Faz a somatória do produto
j= j % 11;
if (j < 2)

x = 0;
else

x = 11-j;
//Analiza o segundo dígito
j=0;
for (i=11; i>1; i--)

j+= (i * cpf[11-i]); //Faz a somatória do produto
j = j % 11;
if (j < 2)

y = 0;
else

y = 11-j;
//Faz a comparação
if ((cpf[9] != x) || (cpf[10] != y))

return 0; //os digitos verificadores não conferem
else

return 1;

}

/* Esta é a implementação da função de teste main()

void main()
{
    char cpf[15];
    int ok;

    do

    {

        cout << "\nDigite o cpf\t";

        gets(cpf);

        ok=valida_cpf(cpf);
        if(ok)

            cout << "\nCPF OK!";
        else
            cout << "\nCPF Invalido!";
    }while(!ok);
    getch();
}
*/

Hosted by www.Geocities.ws

1