Helft mir bitte!!!



  • Hallo, ich möchte in diesem Programm in der Suchfunktion "void Suche(ADRESSE *search, char buchstabe, int nr)" nicht nach dem Erstbuchstaben suchen, sondern nach einem ganzen Wort! Z.B. ich habe david eingegeben, und suche dann nach David, dann soll auch David angezeigt werden. Ich will nicht nach "D" suchen. Ich weiß nur nicht wie das funktionieren soll:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <conio.h>
    #define MAXIMAL 50

    static int x;

    struct adres {
    char vname[MAXIMAL];
    char nname[MAXIMAL];
    char strasse[MAXIMAL];
    long PLZ;
    char ort[MAXIMAL];
    int geb_jahr;
    }
    adressen[100];

    typedef struct adres ADRESSE;

    // ----------------------------------------------------------------------

    void Eingabe(int nr, ADRESSE *neu)
    {
    printf("\nVorname: ");
    fgets(neu[nr].vname, MAXIMAL, stdin);
    printf("Nachname: ");
    fgets(neu[nr].nname, MAXIMAL, stdin);
    printf("Strasse: ");
    fgets(neu[nr].strasse, MAXIMAL, stdin);
    printf("Postleitzahl: ");
    do {
    scanf("%ld",&neu[nr].PLZ);
    } while(getchar()!= '\n');
    printf("Wohnort: ");
    fgets(neu[nr].ort, MAXIMAL, stdin);
    printf("Geburtsjahr [TTMMJJ]: ");
    do {
    scanf("%d",&neu[nr].geb_jahr);
    } while(getchar()!= '\n');
    }

    // ----------------------------------------------------------------------

    void Suche(ADRESSE *search, char buchstabe, int nr)
    {
    int i;
    for(i=0; i<=nr; i++)
    {
    if(search[i].nname[0] == buchstabe || search[i].vname[0] == buchstabe)
    {
    printf("\n\nGefunden unter Buchstabe :\"%c\"\n\n",buchstabe);
    printf("Vorname.........:%s",search[i].vname);
    printf("Nachname........:%s",search[i].nname);
    printf("Strasse.........:%s",search[i].strasse);
    printf("Postleitzahl....:%ld\n",search[i].PLZ);
    printf("Ort.............:%s",search[i].ort);
    printf("Geburtsjahr.....:%d\n",search[i].geb_jahr);
    printf("\n\tWeiter mit <ENTER>\n");
    getchar();
    }
    }
    }

    // ----------------------------------------------------------------------

    void Ausgabe(ADRESSE *all, int nr)
    {
    int i;

    for(i=0; i<nr; i++)
    {
    printf("\nVorname.........:%s",all[i].vname);
    printf("Nachname........:%s",all[i].nname);
    printf("Strasse.........:%s",all[i].strasse);
    printf("Postleitzahl....:%ld\n",all[i].PLZ);
    printf("Ort.............:%s",all[i].ort);
    printf("Geburtsjahr.....:%d\n\n",all[i].geb_jahr);

    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("\n-1- Neue Daten eingeben\n");
    printf("-2- Bestimmte Daten Ausgeben\n");
    printf("-3- Alle Daten Ausgeben\n");
    printf("-4- Daten 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("\nAnfangsbuchstabe des Vorn. oder Nachn. (Achte auf Groß- und Kleinschreibung):");
    do {
    scanf("%c",&c);
    }
    while(getchar()!= '\n');
    Suche(adressen,c,x);
    break;
    case 3 : Ausgabe(adressen,x);
    break;
    case 4 : Sort(adressen,x);
    break;
    default: break;
    }
    }
    while(auswahl <5);
    return 0;
    }

    Bei antworten bitte eine mail an: skulltor@gmx.de
    Ich danke euch schon mal!

    MfG

    Skulltor



  • c# ist das nicht ...



  • aber Crossposting hier


Anmelden zum Antworten