bool wert aus x.find erhalten



  • Ich möchte gerne Feststellen ob ein bestimmtes Zeichen in einem String ist oder nicht.
    Aus der Frage sollte ein bool wert herforgehn.
    Gibt es da einen Befehl, sowas wie x.find nur halt mit bool?



  • Hallo

    meinst du vielleicht:

    std::string strTest;
    bool bTest;
    bTest = strTest.isEmpty();
    

    chrische



  • Eher sowas (?!):

    bool isdrinne (const std::string& s, char c)
    {
        return std::find (s.begin (), s.end (), c) == s.end ();
    }
    

    /EDIT war ein Fehler 😉



  • @.filmor
    Ja das meine Ich .
    Ich bin noch nicht so gut in C++ ,kanst du mir bitte kurz den genauen Ablauf erklären?(wiso steht in der zweiten Zeile hinter c ein ), und weshalb seht hinter string ein & ? )


  • Mod

    bool isdrinne (const std::string& s, char c)
    {
        return s.find( c ) != std::string::npos;
    }
    

    Xclear schrieb:

    @.filmor
    Ja das meine Ich .
    Ich bin noch nicht so gut in C++ ,kanst du mir bitte kurz den genauen Ablauf erklären?(wiso steht in der zweiten Zeile hinter c ein ), und weshalb seht hinter string ein & ? )

    die klammer hinter c gehört zu find. die doppelte klammer zu hinter s.end ist ein fehler.



  • Xclear schrieb:

    und weshalb seht hinter string ein & ?

    Das ist eine Referenz.



  • Ich dachte, dass es sich um ein unbestimmtes Zeichen handelt. 😞

    chrische



  • Xclear schrieb:

    @.filmor
    Ja das meine Ich .
    Ich bin noch nicht so gut in C++ ,kanst du mir bitte kurz den genauen Ablauf erklären?

    Die Funktion std::find aus <algorithm> durchsucht einen Bereich, der durch zwei Iteratoren (hier s.begin () und s.end () für Anfang und 1 + Ende des Strings) gegeben ist nach einem Wert, hier c. Wird sie fündig, liefert sie den entsprechenden Iterator zurück, ansonsten den End-Iterator (also s.end ()).
    Da der ==-Operator ein bool zurückgibt, kann dies auch von der Funktion zurückgegeben werden.

    campers Variante arbeitet prinzipiell genauso (aber wahrscheinlich effizienter), sie benutzt nur die in std::string enthaltene find Funktion, die, wenn sie nichts gefunden hat nunmal std::string::npos zurückliefert.

    @chrische

    Xclear schrieb:

    ... ein bestimmtes ...

    😕 !



  • Hallo

    .filmor schrieb:

    @chrische

    Xclear schrieb:

    ... ein bestimmtes ...

    😕 !

    Das habe ich nun ich nu davon, dass ich nicht genau gelesen habe, sondern nur schnell Hilfe nabieten wollte: den Hohn der Massen.

    Naja, damit kann ich leben. 😉

    chrische


Anmelden zum Antworten