Validar um CPF manualmente pode ser trabalhoso e propenso a erros. Este método em C utiliza o algoritmo oficial de verificação dos dígitos verificadores, garantindo precisão e rapidez na validação de qualquer CPF.
A função principal receberá a string do CPF, removerá pontos e traços, e aplicará o algoritmo de validação. O CPF deve ter exatamente 11 dígitos numéricos.
#include <stdio.h>
#include <string.h>
int validarCPF(char cpf[]) {
int i, j, digito1 = 0, digito2 = 0, tam = strlen(cpf);
// Verificar se tem 11 dígitos
if (tam != 11) return 0;
// Verificar se todos os dígitos são iguais
for (i = 1; i < 11; i++) {
if (cpf[i] != cpf[0]) break;
}
if (i == 11) return 0;
// Calcular primeiro dígito verificador
for (i = 0, j = 10; i < 9; i++, j--) {
digito1 += (cpf[i] - '0') * j;
}
digito1 = (digito1 * 10) % 11;
if (digito1 == 10) digito1 = 0;
// Calcular segundo dígito verificador
for (i = 0, j = 11; i < 10; i++, j--) {
digito2 += (cpf[i] - '0') * j;
}
digito2 = (digito2 * 10) % 11;
if (digito2 == 10) digito2 = 0;
// Verificar se os dígitos calculados correspondem aos informados
if (digito1 == (cpf[9] - '0') && digito2 == (cpf[10] - '0'))
return 1;
else
return 0;
}
A função main solicitará ao usuário que digite um CPF e exibirá se ele é válido ou não, utilizando a função de validação criada.
int main() {
char cpf[15];
printf("Digite o CPF (somente números): ");
scanf("%s", cpf);
if (validarCPF(cpf))
printf("CPF válido!\n");
else
printf("CPF inválido!\n");
return 0;
}
| CPF de Entrada | Saída Esperada |
|---|---|
| 11144477735 | CPF válido! |
| 12345678900 | CPF inválido! |
| 00000000000 | CPF inválido! |
| 52998224725 | CPF válido! |
Com este método em C, você pode validar CPFs de forma rápida e confiável, utilizando o algoritmo oficial de verificação. O código é simples, eficiente e pode ser facilmente integrado em sistemas maiores que necessitam dessa validação.