Validação de CPF!
08/05/2007
0
Estou com um sistema de validação de CPF sem utilizar ponteiros!
Segue o txt.! Por favor me ajudem!!!!!!
//////////////CLASSE PRINCIPAL /////////////////////////////////////
#include <stdio.h>
include <stdlib.h>
include ´minhaBiblioteca.h´
char validaCPF{char cpf};
void verificaCPF{char cpf};
define fim = ´\n´;
int main(void){
//ENTRADA DE DADOS.
char cpf[14];
printf(´Digite um CPF: ´);
scanf(´¬s´,&cpf);
cpf = strcat(cpf,fim);
// VERIFICANDO O TAMANHO DO ARRAY DE CARACTERES.
if(strlen(cpf)==14){
validaCPF(cpf);
verificaCPF(cpf);
}else{
if(strlen(cpf)==11){
verificaCPF(cpf);
}else{
printf(´\n Favor digitar um valor valido: xxx.xxx.xxx-xx ou xxxxxxxxxxx´);
system(´PAUSE´);
return 0;
}
}
//SAIDA - IMPRESSÃO
printf(´\nO CPF digitado foi ´, cpf);
system(´PAUSE´);
return 0;
}
///////////////////////BIBLIOTECA ///////////////////////////////////////////
#include <stdio.h>
include <stdlib.h>
//RETIRANDO OS PONTOS E A BARRA.
char validaCPF(char cpf){
strcpy(&cpf[3], &cpf[3+1]);
strcpy(&cpf[7], &cpf[7+1]);
strcpy(&cpf[11], &cpf[11+1]);
return cpf;
}
// VERIFICA SE O CPF INSERIDO É VALIDO.
void verificaCPF(char cpf){
int cpfInt;
int novoCpf;
int divisao;
int resto;
int i;
int j;
// VERIFICANDO O PRIMEIRO DIGITO -XX.
for(i=0;i<strlen(cpf)-2;i++){
for(j=10;j>=2;j--){
cpfInt = char[i] - ´0´;
novoCpf += (cpfInt * j);
}
divisao = novoCpf/11;
resto = novoCpf¬11;
if(resto<2){
if((strcmp(char[9], ´0´))!=0)
printf(´Favor digitar um CPF válido.´);
}else{
resto = 11-resto;
if((strcmp(char[9], (´´+resto)))!=0)
printf(´Favor digitar um CPF válido.´);
}
//VERIFICANDO O SEGUNDO DIGITO -XX.
for(i=0;i<strlen(cpf)-1;i++){
for(j=11;j>=2;j--){
cpfInt = char[i] - ´0´;
novoCpf += (cpfInt * j);
}
divisao = novoCpf/11;
resto = novoCpf¬11;
if(resto<2){
if((strcmp(char[10], ´0´))!=0)
printf(´Favor digitar um CPF válido.´);
}else{
resto = 11-resto;
if((strcmp(char[10], (´´+resto)))!=0)
printf(´Favor digitar um CPF válido.´);
}
//IMPRESSÃO FINAL.
printf(´O CPF É VALIDO!!´);
}
Muito obrigado!
Rafael Bueno
Rafael Bueno
Posts
08/05/2007
Rafael Bueno
char validaCPF(char cpf){
strcpy(&cpf[3], &cpf[3+1]);
strcpy(&cpf[7], &cpf[7+1]);
strcpy(&cpf[11], &cpf[11+1]);
return cpf;
}
08/05/2007
Rodc
Tenta assim:
char * validaCPF(char *cpf){ strcpy(cpf[3], cpf[3+1]); strcpy(cpf[7], cpf[7+1]); strcpy(cpf[11], cpf[11+1]); return cpf; }
08/05/2007
Rafael Bueno
Tá da seguinte forma pra facilitar a visualização!
-------------------------------MAIN-----------------------------------------
#include <stdio.h>
include <stdlib.h>
include ´biblioteca.h´
int main(void){
//ENTRADA DE DADOS.
char cpf[14];
printf(´\nDigite um CPF: ´);
scanf(´¬s´,&cpf);
validaCPF(cpf);
printf(´\n ¬s´, cpf);
system(´PAUSE´);
return 0;
}
--------------------------------biblioteca.h-------------------------------------
include <stdio.h>
include <stdlib.h>
//RETIRANDO OS PONTOS E A BARRA.
char * validaCPF(char *cpf){
strcpy(cpf[3], cpf[3+1]);
strcpy(cpf[7], cpf[7+1]);
strcpy(cpf[11], cpf[11+1]);
return cpf;
}
------------------------------------------------------------------------------------
Mudei conforme o modelo que você passou!
Mas não rolou!
[Warning] passing arg 1 of ´strcpy´ makes pointer from integer without a cast
Tá dando esse erro em todos os campos! O que será?
Ele tah reclamando de pointer e integer! mas tentei arrumar e não rolou!
Agradeço muito se alguem puder me ajudar!
08/05/2007
Rodc
char * validaCPF(char *cpf){ strcpy(&cpf[3], &cpf[3+1]); strcpy(&cpf[7], &cpf[7+1]); strcpy(&cpf[11], &cpf[11+1]); return cpf; }
Clique aqui para fazer login e interagir na Comunidade :)