Validação de CPF!
Alguem pode me ajudar!
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
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
Curtidas 0
Respostas
Rodc
08/05/2007
Mas qual e o seu problema?
GOSTEI 0
Rafael Bueno
08/05/2007
Nessa parte do código!
char validaCPF(char cpf){
strcpy(&cpf[3], &cpf[3+1]);
strcpy(&cpf[7], &cpf[7+1]);
strcpy(&cpf[11], &cpf[11+1]);
return cpf;
}
char validaCPF(char cpf){
strcpy(&cpf[3], &cpf[3+1]);
strcpy(&cpf[7], &cpf[7+1]);
strcpy(&cpf[11], &cpf[11+1]);
return cpf;
}
GOSTEI 0
Rodc
08/05/2007
Acho que quando você chama uma posição do vetor ele já retorna como sendo ponteiro.
Tenta assim:
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; }
GOSTEI 0
Rafael Bueno
08/05/2007
Não funcionou!
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!
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!
GOSTEI 0
Rodc
08/05/2007
Tenta assim então:
char * validaCPF(char *cpf){ strcpy(&cpf[3], &cpf[3+1]); strcpy(&cpf[7], &cpf[7+1]); strcpy(&cpf[11], &cpf[11+1]); return cpf; }
GOSTEI 0
Rafael Bueno
08/05/2007
AE FUNCIONOOO!!!
OBRIGADO MESMO!
OBRIGADO MESMO!
GOSTEI 0