Frage zu Boost::replace_all



  • ok danke:-)Werds nächstesmal richtig posten.

    Aber mein Aufruf der Funktion scheint ncoh falsch:

    boost::algorithm::replace_all("_",zw_name,"-");
    

    Kriege 3 FEhlermeldungen, aber was ist daran falsch?



  • Hab gerade meine Glaskugel nicht dabei.



  • Mondmann schrieb:

    ok danke:-)Werds nächstesmal richtig posten.

    Aber mein Aufruf der Funktion scheint ncoh falsch:

    boost::algorithm::replace_all("_",zw_name,"-");
    

    Kriege 3 FEhlermeldungen, aber was ist daran falsch?

    Sollen wir jetzt raten?
    Ich habe häufig auch 3 Fehlermeldungen, aber die Lösung ist sicher eine andere hier...

    Evtl. vertauschst du mal die Parameter in der Funktion.



  • Ich dachte es liegt rein am Aufruf der Funktion!

    Also hier die Meldungen:

    Fehler 3 error C2893: Funktionsvorlage 'InputT::iterator boost::algorithm::detail::erase(InputT &,InputT::iterator,InputT::iterator)' konnte nicht spezialisiert werden e:\source\boost\boost_1_33_1\boost\algorithm\string\detail\find_format_all.hpp 249
    Fehler 4 error C2780: 'void boost::algorithm::detail::insert(InputT &,InputT::iterator,const InsertT &)': Erwartet 3 Argumente - 4 unterstützt e:\source\boost\boost_1_33_1\boost\algorithm\string\detail\find_format_all.hpp 254
    Fehler 5 error C2893: Funktionsvorlage 'void boost::algorithm::detail::insert(InputT &,InputT::iterator,ForwardIteratorT,ForwardIteratorT)' konnte nicht spezialisiert werden e:\source\boost\boost_1_33_1\boost\algorithm\string\detail\find_format_all.hpp 254

    Parameters

    Format A substitute string
    Input An input string
    Search A substring to be searched for



  • schau dir einfach nochmal die doc an, der funktionsaufruf ist nicht korrekt:http://www.boost.org/doc/html/replace_all.html



  • Ja das habe ich eben gemerkt. Und zwar hatte ich die Argumente falsch interpretiert.
    Ich meinte "A substitute string" also "Eine Ersatzzeichenkette" ist das Zeichen das ersetzt werden soll. Und nicht der String in dem Zeichen ersetzt werden sollen. 🙄 🙄

    vielen Dank für die Hilfe
    Mondmann



  • Die STL bietet auch nen replace, brauchst du dich somit nicht mit boost rumzuschlagen ...



  • Auch einen der ALLE Zeichen ersetzt, nicht nur eins?
    Klar kann ich ne Schleife machen,aber wozu wenns mit boost mit einem Befehl geht?

    Schönes Wochenende.



  • #include <iostream>
    #include <algorithm>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        string text = "Ich#habe#ganz viele#Rauten.#";
        replace(text.begin(),text.end(),'#',' ');
    
        cout << text <<endl;
        cin.get();
    
        return 0;
    }
    


  • Danke, man kann nur dazulernen:-)
    Mondmann 👍


Anmelden zum Antworten