#include <stdio.h>
#include <string.h>
#include <stdlib.h>

static int x;

struct adres {
                    char vname[20];
                    char nname[20];
                    long PLZ;
                    char ort[20];
                    int geburtsjahr;
                   }adressen[100];

typedef struct adres ADRESSE;


void Eingabe(int nr,ADRESSE neu[])
{
 printf("Vorname : ");
 gets(neu[nr].vname);
 fflush(stdin);
 printf("Nachname : ");
 gets(neu[nr].nname);
 printf("Postleitzahl: ");
 scanf("%ld",&neu[nr].PLZ);
 fflush(stdin);
 printf("Wohnort : ");
 gets(neu[nr].ort);
 printf("Geburtsjahr : ");
 scanf("%d",&neu[nr].geburtsjahr);
}

void Suche(ADRESSE search[],char buchstabe,int nr)
{
 int i;
 for(i=0; i<=nr; i++)
 {
  if(search[i].nname[0] == buchstabe)
   {
    printf("\n\nGefunden unter Buchstabe :\"%c\"\n\n",buchstabe);
    printf("Vorname.........:%s\n",search[i].vname);
    printf("Nachname........:%s\n",search[i].nname);
    printf("Postleitzahl....:%ld\n",search[i].PLZ);
    printf("Ort.............:%s\n",search[i].ort);
    printf("Geburtsjahr.....:%d\n",search[i].geburtsjahr);
    fflush(stdin);
    printf("\n\tWeiter mit <ENTER>\n");
    getchar();
   }
  }
}

void Ausgabe(ADRESSE all[],int nr)
{
 int i;

 for(i=0; i<nr; i++)
  {
   printf("Vorname.........:%s\n",all[i].vname);
   printf("Nachname........:%s\n",all[i].nname);
   printf("Postleitzahl....:%ld\n",all[i].PLZ);
   printf("Ort.............:%s\n",all[i].ort);
   printf("Geburtsjahr.....:%d\n\n",all[i].geburtsjahr);

   if((!(i%2))&& i!=0)
    {
     fflush(stdin);
     printf("\n\tWeiter mit <Enter>\n\n");
     getchar();
    }
  }
}

void Sort(ADRESSE sort[],int nr)
{
 ADRESSE *temp;

 int i,j;

 for(i=0; i<nr; i++)
  {
   for(j=i+1;j<nr;j++)
    {
     if(strcmp(sort[i].nname, sort[j].nname)>0)
      {
       *temp=sort[j];
       sort[j]=sort[i];
       sort[i]=*temp;
      }
    }
  }
 printf(".....Sortiert!!\n");
}




int main()
{
 int auswahl;
 char c;

 do {
       printf("-1- Neue Adresse eingeben\n");
       printf("-2- Bestimmte Adresse Ausgeben\n");
       printf("-3- Alle Adressen Ausgeben\n");
       printf("-4- Adressen Sortieren\n");
       printf("-5- Programm beenden\n");
       printf("\nIhre Auswahl : ");
       scanf("%d",&auswahl);
       fflush(stdin);

       switch(auswahl)
       {
        case 1 : Eingabe(x++,adressen);
                 break;
        case 2 : printf("Anfangsbuchstabe d. Nachnamen :");
                 scanf("%c",&c);
                 Suche(adressen,c,x);
                 break;
        case 3 : Ausgabe(adressen,x);
                 break;
        case 4 : Sort(adressen,x);
                 break;
        default: break;
       }
    }while(auswahl <5);

 return 0;
}
