Replace anwenden in einem wstring



  • Hallo Liebe Community...

    ich bin ein entwickler der normalerweise nicht in der C++ umgebung zu hause ist...
    aber muss mich jetzt hier doch mit einem problem auseinander setzen xD

    ich habe einen wstring ( wird von einer funktion geliefert) und in diesem muss ich ein replace durchführen...leider finde ich da keine funktionierende variante -.-

    folgendes habe ich bereits versucht aber leider funktioniert das nicht wirklich...
    std::replace(currentFile.fileName.begin, currentFile.fileName.end, L"1", L"2");

    --->C3867 "std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::begin": Keine Standardsyntax; "&" zum Erstellen eines Verweises auf das Member verwenden
    --->C2672 "std::replace": keine übereinstimmende überladene Funktion gefunden

    vielleicht könnt ihr mir da weiterhelfen?!

    mfg



  • naja du übergibst da eine adresse (ein stringliteral). probiers mal mit zeichen, also L'1' und L'2'.



  • hm leider nein... kommt der selber fehler beraus...
    aber ich verstehe was du damit meinst und das macht auf jeden fall schon sinn...löst leider nicht mein problem...



  • Bei begin und end fehlen die Klammern:

    std::replace(currentFile.fileName.begin(), currentFile.fileName.end(), L'1', L'2');
    


  • Nebenbei, ich glaube nicht, daß sich std::basic_string<>::replace() mit Zeichen die nicht in einen wchar_t passen gut benimmt (zumindest bei UTF-16 auf Windows).


Log in to reply