flysmog.pages.dev

Como validar CPF em linguagem C de forma simples?

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.

Pré-requisitos

Passo 1: Estruturar a função de validação

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;
}

Passo 2: Implementar a função main para teste

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;
}

Exemplo Prático

CPF de Entrada Saída Esperada
11144477735 CPF válido!
12345678900 CPF inválido!
00000000000 CPF inválido!
52998224725 CPF válido!

Conclusão

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.