Deley15 Postado Setembro 16, 2006 Denunciar Share Postado Setembro 16, 2006 Olá Pessoal!Estou com um probleminha qnado vou excluir minha lista!quando eu digito o cpf desejado ele não encontra para a eclusão!Alguém pode me ajudar?Código fonte!#include <iostream.h>#include <string.h>#include <stdlib.h>#include <stdio.h>//Declaração da estruturastruct lista { char CPF[15]; char Nome[40]; char Endereco[40]; char Bairro[25]; char Cidade[25]; char Estado[2]; char Cep[10]; char Tel[12]; char Email[30]; struct lista* proximo;};lista* inserirValores(lista* no){ lista* novono = new lista; system("CLS"); cout<<"Informe os valores para preenchimento da lista\n"; cout<<"\n\tCPF: "; cin>>novono->CPF; cout<<"\tNome: "; cin>>novono->Nome; cout<<"\tEndereco: "; cin>>novono->Endereco; cout<<"\tBairro: "; cin>>novono->Bairro; cout<<"\tCidade: "; cin>>novono->Cidade; cout<<"\tEstado: "; cin>>novono->Estado; cout<<"\tCep: "; cin>>novono->Cep; cout<<"\tTel: "; cin>>novono->Tel; cout<<"\te-mail: "; cin>>novono->Email; novono->proximo=no; return novono;}void exibirLista(lista* no){ int i=1; lista* auxiliar = new lista; system("CLS"); cout<<"Elementos da lista\n"; for (auxiliar = no; auxiliar != NULL; auxiliar=auxiliar->proximo){ cout<<"\nElemento : "<<i; cout<<"\nCPF : "<<auxiliar->CPF; cout<<"\nNome : "<<auxiliar->Nome; cout<<"\nEndereco : "<<auxiliar->Endereco; cout<<"\nBairro : "<<auxiliar->Bairro; cout<<"\nEstado : "<<auxiliar->Estado; cout<<"\nCep : "<<auxiliar->Cep; cout<<"\nTel : "<<auxiliar->Tel; cout<<"\ne-mail : "<<auxiliar->Email; } cout<<"\n"; system("PAUSE"); return;}lista* retiraElemento(lista* no){ char cpf[15],i=1; lista* ant = NULL; lista* auxiliar = no; system("CLS"); cout<<"Qual CPF deseja excluir? "; cin>>cpf; while ((auxiliar != NULL) && (auxiliar->CPF != cpf)){ ant = auxiliar; auxiliar = auxiliar->proximo; i++; } if (auxiliar == NULL){ cout<<"\nCPF não encontrado"; system("PAUSE"); return no; } cout<<"Elemento encontrado:\n\n"; cout<<"Elemento: "<<i<<"\tCPF: "<<auxiliar->CPF<<"\tNome: "<<auxiliar->Nome; system("PAUSE"); if (ant == NULL){ no = auxiliar->proximo; } else{ ant->proximo=auxiliar->proximo; } free(auxiliar); return no;}void main(){ lista* no = new lista; no = NULL; int op; do{ system("CLS"); cout<<"Lista Simplesmente Encadeada\n\n Menu:\n\n"; cout<<"\t1 - Inserir valores na lista\n"; cout<<"\t2 - Exibir a lista completa\n"; cout<<"\t3 - Retirar um elemento da lista\n"; cout<<"\t4 - Sair do programa"; cout<<"\n\nInforme sua opcao=> "; cin>>op; switch(op){ case 1: no = inserirValores(no);break; case 2: exibirLista(no);break; case 3: no = retiraElemento(no);break; case 4: break; } }while (op != 4); no = NULL; free(no); system("Pause");} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Setembro 18, 2006 Denunciar Share Postado Setembro 18, 2006 voce tem que lembrar que CPF é um vetor de caracteres, e para comparacao de vetores de caracteres(strings), voce pode usar a funcão strcmp while ((auxiliar != NULL) && ( strcmp(auxiliar->CPF, cpf) )) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Deley15
Olá Pessoal!
Estou com um probleminha qnado vou excluir minha lista!
quando eu digito o cpf desejado ele não encontra para a eclusão!
Alguém pode me ajudar?
Código fonte!
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
//Declaração da estrutura
struct lista {
char CPF[15];
char Nome[40];
char Endereco[40];
char Bairro[25];
char Cidade[25];
char Estado[2];
char Cep[10];
char Tel[12];
char Email[30];
struct lista* proximo;
};
lista* inserirValores(lista* no){
lista* novono = new lista;
system("CLS");
cout<<"Informe os valores para preenchimento da lista\n";
cout<<"\n\tCPF: ";
cin>>novono->CPF;
cout<<"\tNome: ";
cin>>novono->Nome;
cout<<"\tEndereco: ";
cin>>novono->Endereco;
cout<<"\tBairro: ";
cin>>novono->Bairro;
cout<<"\tCidade: ";
cin>>novono->Cidade;
cout<<"\tEstado: ";
cin>>novono->Estado;
cout<<"\tCep: ";
cin>>novono->Cep;
cout<<"\tTel: ";
cin>>novono->Tel;
cout<<"\te-mail: ";
cin>>novono->Email;
novono->proximo=no;
return novono;
}
void exibirLista(lista* no){
int i=1;
lista* auxiliar = new lista;
system("CLS");
cout<<"Elementos da lista\n";
for (auxiliar = no; auxiliar != NULL; auxiliar=auxiliar->proximo){
cout<<"\nElemento : "<<i;
cout<<"\nCPF : "<<auxiliar->CPF;
cout<<"\nNome : "<<auxiliar->Nome;
cout<<"\nEndereco : "<<auxiliar->Endereco;
cout<<"\nBairro : "<<auxiliar->Bairro;
cout<<"\nEstado : "<<auxiliar->Estado;
cout<<"\nCep : "<<auxiliar->Cep;
cout<<"\nTel : "<<auxiliar->Tel;
cout<<"\ne-mail : "<<auxiliar->Email;
}
cout<<"\n";
system("PAUSE");
return;
}
lista* retiraElemento(lista* no){
char cpf[15],i=1;
lista* ant = NULL;
lista* auxiliar = no;
system("CLS");
cout<<"Qual CPF deseja excluir? ";
cin>>cpf;
while ((auxiliar != NULL) && (auxiliar->CPF != cpf)){
ant = auxiliar;
auxiliar = auxiliar->proximo;
i++;
}
if (auxiliar == NULL){
cout<<"\nCPF não encontrado";
system("PAUSE");
return no;
}
cout<<"Elemento encontrado:\n\n";
cout<<"Elemento: "<<i<<"\tCPF: "<<auxiliar->CPF<<"\tNome: "<<auxiliar->Nome;
system("PAUSE");
if (ant == NULL){
no = auxiliar->proximo;
}
else{
ant->proximo=auxiliar->proximo;
}
free(auxiliar);
return no;
}
void main(){
lista* no = new lista;
no = NULL;
int op;
do{
system("CLS");
cout<<"Lista Simplesmente Encadeada\n\n Menu:\n\n";
cout<<"\t1 - Inserir valores na lista\n";
cout<<"\t2 - Exibir a lista completa\n";
cout<<"\t3 - Retirar um elemento da lista\n";
cout<<"\t4 - Sair do programa";
cout<<"\n\nInforme sua opcao=> ";
cin>>op;
switch(op){
case 1: no = inserirValores(no);break;
case 2: exibirLista(no);break;
case 3: no = retiraElemento(no);break;
case 4: break;
}
}while (op != 4);
no = NULL;
free(no);
system("Pause");
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.