Arquivos de Tags: CNPJ

Validação de CNPJ em C

Validação de CNPJ

O CNPJ é composto 8(oito) dígitos, seguido de 4 dígitos(que indicam o número de filiais) e os 2 finais digítos que são responsáveis pela validação do CNPJ. Sua validação é semelhante a do CPF. A principio precisamos de um CNPJ para um teste, vamos usar o CNPJ: 12345678/0001-95. Os dígitos de validação são o 95. Calculando o primeiro digito de validação é feito de forma bastante simples. Multiplicaremos o primeiro digito por 5 o segundo por 4 o terceiro por 3,etc. Da mesma forma que na imagem abaixo:

gráfico da validação do CNPJ.

Multiplicamos e somamos os resultados. Depois dividiremos por 11, e vamos levar em conta o resultado do quociente(modulo) da divisão. Se ele for menor que 2 o valor do dígito validador passa a ser 0, se não subtraímos 11 para obter o dígito, que vai ser o primeiro digito validador.

Segundo digito

Efetuamos a multiplicação da mesma forma que com o seguindo digito, mas mudamos os valores que serão multiplicados, começamos agora com 6! E seguimos a mesma ordem igual na imagem abaixo:

Gráfico da validação do segundo digito do CNPJ.

Após as multiplicações, efetuamos a soma dos valores, e dividimos por 11. Como no cálculo anterior, utilizamos o quociente da divisão(modulo). Se ele for menor que 2 o valor do dígito validador passa a ser 0, se não subtraímos 11 para obter o dígito, que vai ser o primeiro digito validador.

Abaixo segue o código-fonte escrito em C de um programa que efetua a validação.

//CNPJ

#include <stdio.h>
#include <string.h>

int main()
{
char cnpj[19];
int i,j=9,icnpj[19],somador=0,div,digito1,div2,digito2;

do{
printf("Digite o CNPJ: ");
scanf(" %s",cnpj);
if(strlen(cnpj)!=14)
{
printf("VOCE NAO DIGITOU 14 DIGITOS.\n");
}
}while(strlen(cnpj)!=14);

for(i=0;i<18;i++)
{
icnpj[i]=cnpj[i]-48;
}

//soma dos digitos.

for(i=0;i<5;i++)
{
if(i!=4)
{
somador+=icnpj[i]*(5-i);
}
}

for(i=4;i<12 && j!=1;i++)
{
somador+=icnpj[i]*(j--);
}

//DIVISAO

div=somador%11;

//1 DIGITO

if(div<2)
{
digito1=0;
}
else
{
digito1=11-div;
}

//2 DIGITO

somador=0;
j=9;

for(i=0;i<6;i++)
{
if(i!=5)
{
somador+=icnpj[i]*(6-i);
}
}

for(i=5;i<13 && j!=1;i++)
{
somador+=icnpj[i]*(j--);
}

div2=somador%11;

if(div2<2)
{
digito2=0;
}
else
{
digito2=11-div2;
}

//VALIDAR DIGITOS.

if( (digito1==icnpj[12]) && (digito2=icnpj[13]) )
{
printf("CNPJ VALIDO.\n");
}
else
{
printf("CNPJ INVALIO.\n");
}

return 0;
}

Boa sorte e bons estudos.

[]‘s

Pagina 1 of 11
SEO Powered by Platinum SEO from Techblissonline