necesito que me ayuden, con este problema:
estoy creando una agenda en c y necesito una opcion de eliminar un dato,
digitando el dato nombre de cualquier dato ya ingresado. este es el programa q llevo hasta estos momentos;
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct agenda{
char nombre[200];
char telefono[12];
char cedula[20];
struct agenda*sig;
}*princ, *fin;
int j=0;
void agregar(){
struct agenda*nuevo;
nuevo=(struct agenda*)malloc(sizeof(struct agenda));
printf("\ndigite su nombre: ");
fflush(stdin);
scanf("%s", nuevo->nombre);
fflush(stdin);
printf("digite su telefono: ");
scanf("%s", nuevo->telefono);
printf("digite su cc: ");
fflush(stdin);
scanf("%s", nuevo->cedula);
nuevo->sig=NULL;
if(princ==NULL){
princ=nuevo;
fin=nuevo;
}
else{
fin->sig=nuevo;
fin=nuevo;
}
j++;
}
void imprimir(){
printf("\nDATOS AGREGADOS HASTA EL MOMENTO\n");
struct agenda*aux;
aux=princ;
if(aux==NULL){
printf("agenda vacia vacia");
}
else{
while(aux!=NULL){
printf("\nnombre: %s", aux->nombre);
printf("\ntelefono: %s",aux->telefono);
printf("\ncedula: %s", aux->cedula);
printf("\n--------------------------------------------\n");
aux=aux->sig;
}
}
}
void eliminar(){
struct agenda*aux;
struct agenda*aux1;
int cont;
aux=princ;
aux=princ;
cont=0;
while(aux!=NULL){
if(aux->nombre==aux1->nombre){
if(cont==0){
princ=princ->sig;
}
}
aux=aux->sig;
aux1=aux;
cont=1;
}
}
int main(){
int opc;
do{
printf("\n1. ingresar datos a la agenda\n");
printf("2. mostrar los datos de la agenda\n");
printf("3. eliminar datos de la agenda\n");
printf("4. eliminar\n");
printf("\nintroduce una opcion: ");
scanf("%d", &opc);
system("cls");
switch(opc){
case 1:
agregar();
break;
case 2:
imprimir();
break;
case 3:
eliminar();
break;
case 4:
printf("salir");
break;
}
}while(opc<4);
}