Veja se assim funciona:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <locale.h>
typedef struct {
char nome[50];
char endereco[50];
int telefone;
}pessoa;
int main (void){
setlocale (LC_ALL, "Portuguese");
pessoa p[5];
int i, x;
char aux[50], aux2[50];
int aux3;
for(i=0; i<5; i++){
printf("Digite o Nome da %dº pessoa:",i+1);
fflush(stdin);
fgets(p[i].nome, 50, stdin);
printf("Digite o Endereço:");
fflush(stdin);
fgets(p[i].endereco, 50, stdin);
printf("Digite o Telefone:");
scanf("%d", &p[i].telefone);
fflush(stdin);
}
for(i=0;i<4;i++){
for (int j=i+1; j < 5; j++)
{
x = strcmp(p[i].nome, p[j].nome);
if(x>0){
strcpy(aux, p[i].nome);
strcpy(p[i].nome, p[j].nome);
strcpy(p[j].nome,aux);
strcpy(aux2, p[i].endereco);
strcpy(p[i].endereco, p[j].endereco);
strcpy(p[j].endereco, aux2);
aux3 = p[i].telefone;
p[i].telefone = p[j].telefone;
p[j].telefone = aux3;
}
}
}
printf("-----LISTA DAS PESSOAS EM ORDEM ALFABÉTICA------");
for(i=0; i<5; i++){
printf("\nNome: %s", p[i].nome);
printf("\nEndereço: %s", p[i].endereco);
printf("\nTelefone: %d\n", p[i].telefone);
}
system ("pause");
return 0;
}