Gente, estou fazendo um dicionário, mas não estou conseguindo implementar corretamente a função excluir... A primeira dúvida é o seguinte: eu fiz essa função e está dando erro, diz conversão inválida de char* para char... Está correta? Porque eu quero excluir somente uma palavra específica... Dic* excluir(Dic *d, char palavra); E o código abaixo... Queria saber o que estou fazendo de errado na implementação dessa função... Se alguém puder ajudar, obrigada (: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> typedef struct dic{ char palavra[30], sig[150]; struct dic *prox; }Dic; Dic* inserir(Dic *d); void consultar(Dic *d); void alterar(Dic *d); Dic* excluir(Dic *d, char pal); char imprimir(Dic *d); main(){ char opcao, op, palavra[30], signif[150],pe[30]; Dic *dicionario,*inicio=NULL,*ant; do{ printf("ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª\n"); printf("1 - Inserir uma nova palavra\n"); printf("2 - Consultar o significado de uma palavra\n"); printf("3 - Alterar uma palavra\n"); printf("4 - Excluir uma palavra\n"); printf("5 - Imprimir o dicionario\n"); printf("0 - Sair\n"); printf("ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª\n\n\n"); fflush(stdin); scanf("%c",&opcao); if(opcao=='1'){ dicionario = inserir(dicionario); getch(); } if(opcao=='2'){ /*printf("\nDigite a palavra a ser consultada:\n"); gets(pal);*/ consultar(dicionario); getch(); } //if(opcao=='3'){ /*printf("1 - Alterar a palavra\n"); printf("2 - Alterar o significado\n"); printf("3 - Alterar palavra e significado\n"); fflush(stdin); scanf("%c",&op); if(op=='1'){ printf("\nDigite a palavra a ser alterada:\n"); gets(p); alterar(dicionario); getch(); }*/ if(opcao=='4'){ printf("\nDigite a palavra a ser excluida:\n"); fflush(stdin); scanf("%s",pe); excluir(dicionario,pe); getch(); } /*if(opcao=='5'){ imprimir(dicionario); getch(); }*/ if(opcao=='0'){ printf("\nEnter para sair..."); getch(); } system("cls"); }while(opcao!='0'); } Dic* inserir(Dic *d){ Dic *aux; char op; do{ aux=(Dic*)malloc(sizeof(Dic)); printf("\nDigite a palavra:\n"); fflush(stdin); gets(aux->palavra); printf("\nDigite o significado:\n"); fflush(stdin); gets(aux->sig); aux->prox=d; d=aux; printf("\nDeseja digitar uma nova palavra? (s/n)"); fflush(stdin); scanf("%c",&op); }while(op=='s' || op=='S'); return d; } void consultar(Dic *d){ Dic *aux; int a=0; char op; char pal[30]; do{ printf("\nDigite a palavra a ser consultada:\n"); fflush(stdin); scanf("%s",pal); aux=d; //busca na lista //a=0;//--> pra verificar se o elemento foi encontrado while(aux!=NULL){ if(strcmp(aux->palavra,pal)==0){ printf("\nO significado da palavra é:\n"); printf("%s",aux->sig); a=1; break; } else aux=aux->prox; } //aviso: deve-se fechar o while antes de verificar se o elemento não foi encontrado if(a==0){ printf("\nPalavra não encontrada"); } printf("\nDeseja procurar mais alguma palavra? (s/n)"); fflush(stdin); scanf("%c",&op); }while(op=='s'||op=='S'); } //void alterar(Dic *d); void excluir(Dic *d, char pal){ Dic *aux,*ant; char pal[30]; aux=d; ant=NULL;//ainda não entrou while(aux->palavra!=pal){ ant=aux; aux = aux->prox; } if(aux==d){ d=aux->prox; free(aux); } else{ if(aux==NULL) printf("\nPalavra não encontrada"); else{ ant->prox=aux->prox; free(aux); } } aux=d; while(aux!=NULL){ printf("\n Valor : %d",aux->palavra); aux=aux->prox; } } //char imprimir(Dic *d);[/CODEBOX]