Validador de CPF
Publicado por Djames Suhanko 29/01/2006
[ Hits: 10.997 ]
Homepage: http://phantomclone.com
Um validador de cpf básico
#include <stdio.h>
// Armazena CPF digitado
char lercpf[13];
int cpflimpo[11];
int digitos[1];
int total=0, multi;
int conta, modulo;
int i;
// Funcao para ler o CPF
digcpf() {
printf("Digite seu CPF (123.456.789-AB ou 123456789AB)\nC.P.F.: >> ");
scanf("%s",&lercpf);
}
//converter para numerico e remover caracteres nao-numericos
convCPF() {
int a=0;
for (i=0; i<14;i++)
{
if (lercpf[i] == '.' || lercpf[i] == '-')
{
i=i+1;
}
cpflimpo[a] = lercpf[i]-48;
a = a+1;
}
}
// calcula o primeiro digito
digito1() {
int a=10;
//2*10+5*9..
for (i=0;i<9;i++)
{
multi=cpflimpo[i]*a;
total=total+multi;
a=a-1;
}
conta=total/11;
modulo=total%11;
digitos[0]=11-modulo;
}
//calcula o segundo digito
digito2() {
int a=11;
total=0;
//2*10+5*9..
for (i=0;i<10;i++)
{
multi=cpflimpo[i]*a;
total=total+multi;
a=a-1;
}
conta=total/11;
modulo=total%11;
digitos[1]=11-modulo;
}
main()
{
digcpf();
convCPF();
digito1();
digito2();
printf("\e[H\e[2J");
if (cpflimpo[9] == digitos[0] && cpflimpo[10] == digitos[1])
{
printf("\nC.P.F. valido\n ");
}
else
{
printf("Invalido !!!\n");
}
}
Nenhum comentário foi encontrado.
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
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um software que seja utilizado para coleta de dados em ... (0)
Podem me chamar de 1mbecil :) (11)
Incluir versão do projeto no executavel criado no Lazarus com Linux (0)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (9)









