Ho provato ad abbozzare questo codice, ma ogni volta che lo richiamo, mi crasha il programma
struct elemento *ordineAlfabetico(struct elemento *p) {
char Iniziale1[1];
char Iniziale2[1];
char Cognome[40];
char Nome[40];
char Indirizzo[40];
char Citta[40];
char Email[40];
char NumeroTel[12];
struct elemento *copiaP = p;
do {
strncpy(Iniziale1, p->inf.Cognome, 1); //acquisisco l'iniziale di cognome1
//acquisisco tutti i dati
strcpy(Cognome, p->inf.Cognome);
strcpy(Nome, p->inf.Nome);
strcpy(Indirizzo, p->inf.Indirizzo);
strcpy(Citta, p->inf.Citta);
strcpy(Email, p->inf.Email);
strcpy(NumeroTel, p->inf.NumeroTel);
p = p->pun;
strncpy(Iniziale2, p->inf.Cognome, 1); //acquisisco l'iniziale di cognome2
if (p == NULL) //nel caso ci fosse solo un elemento
{
p = copiaP;
} else if (strncmp(Iniziale1, Iniziale2, 1) == 1) {
strcpy(p->inf.Cognome, Cognome);
strcpy(p->inf.Nome, Nome);
strcpy(p->inf.Indirizzo, Indirizzo);
strcpy(p->inf.Citta, Citta);
strcpy(p->inf.Email, Email);
strcpy(p->inf.NumeroTel, NumeroTel);
p = p->pun;
}
} while (p != NULL);
p = copiaP;
return (p);
}