Einfache Suche, oder warum die Verwendung von namespace std fehlschlägt



  • Hallo!

    Ich bin auf der Suche nach einer ziemlich einfachen Funktion, die ich trotzdem nicht finden kann: find

    ich möchte gerne die Position eines SubStrings in einem String finden. Weiter nichts. Nach einiger Zeit an Suche bin ich so |---| kurz davor, mir die routine selber zu schreiben. Ich habe bereits einige Zeit lang gegoogelt, hier im Forum gesucht und die Hilfe von Visual Studio 5.0 gewälzt! Ergebnis: Einfach die Klasse String oder CString verwenden. Gesagt getan. Leider muss ich den namespace std verwenden, und sobald ich das tue, läuft meine Anwendung nicht mehr... Sie startet und stürzt sofort wieder ab! Dazu fällt auch google dann nichts mehr ein! Evtl sollte ich noch erwähnen, dass ich für ein PDA mit WM5 entwickle.

    Ich hoffe, euch schon! Vielen Dank,

    mfg Jan



  • Welches find benoetigst du jetzt, das fuer vectoren (unter anderem) oder das fuer strings?

    fuer vector:

    #include <algorithm> //hier steht find
    #include <vector>
    
    ...
    
    std::find(vector.begin(),vector.end(),"irgendwas");
    

    Fuer strings:

    #include <string>
    
    ...
    
    s.find("irgendwas");
    

    Naeheres auf www.cppreference.com

    (btw bin selbst Anfaenger, aber es sollte soweit stimmen)



  • Hat die VS5.0 schon was von der STL gewusst? 😮 VS6.0 ist glaube ich gerade mal mit Servicepack fähig die STL zu benutzen. (schon lange her, als ich VC6.0 hatte)



  • Hallo!

    Danke schon mal für die Antworten. Das mit den Vektoren werde ich ausprobieren. Die String.find(..) kann ich irgendwie nicht verwenden, denn sobald ich hinschreibe: std::string läuft mein Programm nicht mehr, weil der namespace von std dann wohl automatisch eingebunden wird...

    Danke, Jan



  • Silas schrieb:

    Hallo!
    std::string läuft mein Programm nicht mehr, weil der namespace von std dann wohl automatisch eingebunden wird...

    Danke, Jan

    nein wird er nicht!
    wieso läuft dein programm nicht mehr?fehlermeldung?
    stringheader eingebunden?

    du weißt aber wie das gemeint ist?

    string strMyString = "Hallo Du";
    int iPos = strMyString.find("o");
    


  • Beim 5.0er kann sein dass die STL noch im global namespace war. Nicht sehr "standardig", aber naja. Wäre Zeit mal auf nen neueren Compiler umzusteigen - ggf. Studio 2005 Express oder vielleicht den digital mars.


Anmelden zum Antworten