Array durchsuchen
-
Hallo,
ich habe mir eine kleine Suche programmiert:
while(j<buch) { if (strstr(buchTitel[j], suche[0]) || strstr(buchName[j], suche[0]) || strstr(buchISBN[j], suche[0])) { printf("Ausgabe"); } else { printf("Die Suche ergab folgendes Ergebnis:\n\n"); printf("Nummer:\t\t%d\nTitel:\t\t%s",buchNr[j],buchTitel[j]); printf("Autor:\t\t%sISBN:\t\t%s\n",buchName[j],buchISBN[j]); z = 1; } j++; } if(z == 0) { printf("Die Suche ergab kein Ergebnis.\n\n"); }Er gibt mir jedoch immer alle Arrays aus.
Warum?
-
ich geh mal davon aus, dass die variablen und vergleiche offensichtlich sind: er wird dir das gesamte array ausgeben, bis auf das ergebnis der suche. deine verzweigung (if-else) ist genau falschrum.
-
Ok, er gibt aber auch nicht Ausgabe aus.
Weiß jemand, wenn str(String1,String2) true ist, was dort passiert?
Also ob es heißt, ja es wurde etwas gefunden, oder nein, es wurde nichts gefunden.
-
Weil, wenn ich es andersrum mache, dann gibt er Ausgabe aus.
-
man: strstr gibt die Position zurück, an der der Suchbegriff gefunden wurde - NULL (äquivalent zu false) bedeutet "nicht gefunden".
PS: Da wir hier im C++-Board sind, probier's lieber mit C++-Methoden (=std::string)
