(ANSI C) Wie geht das???
-
Hallo, ich möchte in diesem Programm in der Suchfunktion nicht nach dem Erstbuchstaben suche sondern nach einem ganzen Wort! 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(" Vorname: "); 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()!= ' '); printf("Wohnort: "); fgets(neu[nr].ort, MAXIMAL, stdin); printf("Geburtsjahr [TTMMJJ]: "); do { scanf("%d",&neu[nr].geb_jahr); } while(getchar()!= ' '); } // ---------------------------------------------------------------------- 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(" Gefunden unter Buchstabe :"%c" ",buchstabe); printf("Vorname.........:%s",search[i].vname); printf("Nachname........:%s",search[i].nname); printf("Strasse.........:%s",search[i].strasse); printf("Postleitzahl....:%ld ",search[i].PLZ); printf("Ort.............:%s",search[i].ort); printf("Geburtsjahr.....:%d ",search[i].geb_jahr); printf(" Weiter mit <ENTER> "); getchar(); } } } // ---------------------------------------------------------------------- void Ausgabe(ADRESSE *all, int nr) { int i; for(i=0; i<nr; i++) { printf(" Vorname.........:%s",all[i].vname); printf("Nachname........:%s",all[i].nname); printf("Strasse.........:%s",all[i].strasse); printf("Postleitzahl....:%ld ",all[i].PLZ); printf("Ort.............:%s",all[i].ort); printf("Geburtsjahr.....:%d ",all[i].geb_jahr); if((!(i%2))&& i!=0) { fflush(stdin); printf(" Weiter mit <Enter> "); 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!! "); } // ---------------------------------------------------------------------- int main() { int auswahl; char c; do { printf(" -1- Neue Daten eingeben "); printf("-2- Bestimmte Daten Ausgeben "); printf("-3- Alle Daten Ausgeben "); printf("-4- Daten Sortieren "); printf("-5- Programm beenden "); printf(" Ihre Auswahl : "); scanf("%d",&auswahl); fflush(stdin); switch(auswahl) { case 1 : Eingabe(x++,adressen); break; case 2 : printf(" Anfangsbuchstabe des Vorn. oder Nachn. (Achte auf Groß- und Kleinschreibung):"); do { scanf("%c",&c); } while(getchar()!= ' '); 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
Bitte Code-Tags verwenden: So funktioniert das Syntaxcoloring:
[ Dieser Beitrag wurde am 16.06.2003 um 22:28 Uhr von HumeSikkins editiert. ]
-
Hi,
ich hoffe das ist Richtig so. Das gehört in der Form aber mehr nach ANSI-C. Die Änderungen hab ich Fett gemacht.
[cpp]
void Suche(ADRESSE *search, char *wort, int nr)
{
int i;
for(i=0; i<=nr; i++)
{
if( strcmp(search[i].nname, wort) || strcmp(search[i].vname, wort) )
{
printf("\n\nGefunden unter Suchwort :\"%s\"\n\n",wort);
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();
}
}
}
[/cpp]
grüße Con@n[ Dieser Beitrag wurde am 17.06.2003 um 01:58 Uhr von Con@n editiert. ]