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. ]
-
es gibt 3 Möglichkeiten:
-entweder gehst du in Varel zur BBS und hast Unterricht bei einem gewissen Scheckenbach
-oder selbiger hat sich selbst diese Aufgabe geklaut
-oder es gibt Klone oder sehr komische Zufälle ^^Genau die Aufgabe hab ich vor 3 Jahren auch mal gemacht... das wäre ja noch nicht das erstaunliche da in der Art fast jeder sowas macht, aber der Quellcode sah ziemlich genauso aus, die Adressdaten stimmen bis ins Detail und die Suchfunktion war auch unser grösstes Problem(leider wusste besagte Person auch nicht wie das gehen soll) :D.
[ Dieser Beitrag wurde am 17.06.2003 um 14:18 Uhr von dreaddy editiert. ]