====================== 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();
}
*/