salave a tutti. Dovrei progettare un programma che gestisca una rubrica. ogni contatto memorizzato presenta: nome,cognome,telefono,web,mail.
codice:
typedef struct{         
char nome[MAX_DIM];         
char cognome[MAX_DIM];        
 char telefono[MAX_DIM];         
char web[MAX_DIM];         
char mail[MAX_DIM];         
}contatto; 
struct ElementoAgenda; 
typedef ElementoAgenda * PuntElementoAgenda; 
typedef struct ElementoAgenda{         
contatto persona;         
PuntElementoAgenda Next;         
}ElementoAgenda;

Il problema è che non riescoa definire una funzione per gli inserimenti successivi al primo. Ho provato a farne una ma non ho neanche ben capito se il confronto tra due cognomi(per l'inserimento ordinato) vada fatto con strcmp.
codice:
void Inserisci(PuntElementoAgenda Agenda, ElementoAgenda nuovo){      
PuntElementoAgenda prec,succ,temp;      
prec=Agenda;      
succ=prec->Next;      while((prec!=NULL)&&(strcmp(nuovo.persona.cognome,prec->persona.cognome)>0)){                                                                         prec=prec->Next;                                                                           }                                                                           temp=PrimoInserimento(Agenda,nuovo); while((prec!=NULL)&&(strcmp(nuovo.persona.cognome,prec->persona.cognome)>0)){      temp->Next=succ;      
prec->Next=temp;      
}      
}
Questo è quello che ho provato a fare. Quando inseriamo il nuovo contatto(in particolare dal secondo in poi che immettiamo) la funzione dovrebbe leggerne il cognome,confrontarlo con quelli già in memoria, dopodichè inserirlo in quella determinata posizione.
Grazie in anticipo, spero possiate aiutarmi!