Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Schleifenproblem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.05.2006, 12:00 Uhr
fruitbat



Ich habe immer noch ein Problem mit dem Suchen bestimmter Strings...:-S

Ich habe einen Vektor und habe in diesem Vektor erneut einen bestimmten Bereich eingegrenzt. Diesen Bereich kann ihc mir auch schön ausgeben lassen. Nur möchte ich dass er nicht nach dem ersten Erscheinen des Suchstrings aufhört sondern den Vektor bis zum Ende durchsucht und alles nacheinander ausgibt.

Aber irgendwie komm ich da grad nicht weiter.

Was ich bisher gemacht habe sieht so aus:

C++:
vec_type::const_iterator res=find(tmp.begin(), tmp.end(), "_name");
  vec_type::const_iterator res_end=find(tmp.begin(), tmp.end(), "}");
  
    int position = 0;
    while(position != tmp.size()){

        if(vec_type::const_iterator res=find(tmp.begin(), tmp.end(), "_name")){
            cout << "Dateiname: ";

            cout << tmp.at(position);
        }
        cout << '\n';
        position=position+1;
    }


tmp ist der besagte Vektor.

Die Ausgabe sieht nur jetzt so aus, dass mir von Beginn des Vektors jedes einzelne Wort in einer Zeile ausgeben wird.

Ich weiss nicht recht wie ich sagen soll, dass er sich die position res merkt und nur bis res_end sucht, aber ab da auch wieder weitersucht nach dem gleichen Muster??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.05.2006, 13:16 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

"find" erwartet als ersten Parameter die Stelle, ab der gesucht werden soll. Wenn Du hier weiterhin "begin()" einsetzt, gehts immer von vorne los. Du musst Dir die letzte Fundstelle merken und immer von dort aus weitersuchen, dann klappts...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.05.2006, 13:31 Uhr
fruitbat



Das ist ja grad das Problem. Ich hab schon sowas wie
position = tmp.begin(); versucht. Aber das wirft immer Fehler.



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.05.2006, 14:02 Uhr
0xdeadbeef
Gott
(Operator)


Mach position statt zu nem int zu nem vec_type::const_iterator, dann klappts auch mit der Zuweisung.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.05.2006, 09:32 Uhr
fruitbat



Jep, hatte ich jetzt auch schon rausgefunden..
Danke. Läuft nu auch prima, nur dass ich am ende noch nen dummen Fehler geworfen bekomme...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: