Nach bestimmter Stelle im Array suchen
-
Hi, ich weiß nicht wie ich nach einem bestimmten Wert in einem Array suchen kann und das ich dann die position des Arrays zurückbekomme...
Habe folgendes Beispiel, ich habe ein Programm in dem ich 4 Namen Speichere als String in einem Array.
Nun will ich nach dem Namen suchen und will die Position des Namens wissen... 1,2,3 oder 4 halt...
In VB musste ich sowas in der Schule programieren und weiß da mitlerweile auch wie, ich würde das aber auch gerne in C++ können.
Bei VB hat man das mit der .length Eigenschaft gemacht.
Hier mein Code bisher... da wird noch nach nix gesucht.
#include <iostream.h> #include <windows.h> #include <conio.h> using namespace::std; string Liste[4]; void Eingabe() { int eingabe; int Nr = 0; cout << "Suche eines Wortes in einer Liste!" << endl; cout << "Geben sie das Wort in die Liste ein " << endl; int i; for(i=0;i<4;i++) { Nr = Nr +1; cout << Nr << ". Wort: "; cin >> Liste[i]; } } int main() { Eingabe(); cout << "Name an 4ter Stelle: " << Liste[3] << endl; getch(); }
-
if (liste[i] == suchname)
-
keksekekse schrieb:
if (liste[i] == suchname)
Ja so kann ich das gesuchte Wort mit der Liste abgleichen...
An welcher Stelle das Wort steht finde ich aber leider nicht heraus.
Oder ich weiß nicht genau wie, oder ich denke gerade verkehrtherum.Ich hab es mit Liste.size probiert... aber da bekomme ich nur eine Fehlermeldung.
Irgendeine Idee wie ich die Stelle des Wortes herausfinde?
Wenn ich i nehme als Stelle ist die Stelle natürlich immer 4...Danke schonmal
-
Doch, weißt du - an Position 'i'
(um den Eintrag zu finden, mußt du alle möglichen Werte für i durchtesten, bis du Erfolg hast - oder feststellst, daß der Wert nicht vorkommt).
Alternativ kannst du auch std::find() verwenden:
string* pos = find(Liste,Liste+4,suchname); int findpos = pos-Liste;
PS: Ist es wirklich notwendig, 'i' und 'Nr' parallel zu verwenden? Die laufen doch sowieso ständig synchron.
-
CStoll schrieb:
Doch, weißt du - an Position 'i'
(um den Eintrag zu finden, mußt du alle möglichen Werte für i durchtesten, bis du Erfolg hast - oder feststellst, daß der Wert nicht vorkommt).
Alternativ kannst du auch std::find() verwenden:
string* pos = find(Liste,Liste+4,suchname); int findpos = pos-Liste;
PS: Ist es wirklich notwendig, 'i' und 'Nr' parallel zu verwenden? Die laufen doch sowieso ständig synchron.
Jetzt genau Position i herauszufinden indem ich allemöglichen Werte durchteste, da wüsste ich nicht wie ich das umsetzten sollte^^
Danke mit dem Code funktionierts genauso wie ich das haben wollte.
Und ja auf Nr kann ich verzichten.
-
Last-Boyscout schrieb:
CStoll schrieb:
Doch, weißt du - an Position 'i'
(um den Eintrag zu finden, mußt du alle möglichen Werte für i durchtesten, bis du Erfolg hast - oder feststellst, daß der Wert nicht vorkommt).
Alternativ kannst du auch std::find() verwenden:
string* pos = find(Liste,Liste+4,suchname); int findpos = pos-Liste;
PS: Ist es wirklich notwendig, 'i' und 'Nr' parallel zu verwenden? Die laufen doch sowieso ständig synchron.
Jetzt genau Position i herauszufinden indem ich allemöglichen Werte durchteste, da wüsste ich nicht wie ich das umsetzten sollte^^
Sagt dir der Begriff "Schleife" etwas?
for(i=0;i<4;++i)...
wäre der direkte Weg
-
CStoll schrieb:
Last-Boyscout schrieb:
CStoll schrieb:
Doch, weißt du - an Position 'i'
(um den Eintrag zu finden, mußt du alle möglichen Werte für i durchtesten, bis du Erfolg hast - oder feststellst, daß der Wert nicht vorkommt).
Alternativ kannst du auch std::find() verwenden:
string* pos = find(Liste,Liste+4,suchname); int findpos = pos-Liste;
PS: Ist es wirklich notwendig, 'i' und 'Nr' parallel zu verwenden? Die laufen doch sowieso ständig synchron.
Jetzt genau Position i herauszufinden indem ich allemöglichen Werte durchteste, da wüsste ich nicht wie ich das umsetzten sollte^^
Sagt dir der Begriff "Schleife" etwas?
for(i=0;i<4;++i)...
wäre der direkte WegJa doch natürlich
Ich machs mir gern kompliziert!^^