von char to string



  • Ich suche folgende operation / cast / umwandlung:

    ich bekomme ein "char *name"

    und möchte diesen Wert an eine Funktion fkt2(string *name2){}

    weiterleiten.

    wie komme ich von einem char* auf ein string*

    danke



  • std::string *p_str = new std::string(name);
    fkt2(p_str);
    delete p_str;
    

    Oder:

    std::string name2(name);
    fkt2(&name2);
    


  • std::string str(name2);
    fkt2(&str);
    

    pointer auf strings als funktionsargumente sind aber doof.



  • Hmm einfach:

    void fkt2(std::string const& string);
    

    ... dann hast du so doofe Probleme nicht 😉



  • von char to string schrieb:

    ich bekomme ein "char *name"

    und möchte diesen Wert an eine Funktion fkt2(string *name2){}

    weiterleiten.

    Grundsätzlich kann ich mich nur dem Vorposter anschließen. Warum arbeitet man bei der fkt2 mit einem Zeiger auf String (wäre an sich nur sinnvoll wenn NULL eine zulässige Übergabe ist, da Referenzen und Konstante Referenzen eigentlich üblicher und weniger Fehleranfällig sind)?

    Zweite Anmerkung: ich hoffe die Funktion steht nicht so im Header (using namespace im Header sollte niemals gemacht werden).

    cu André


Anmelden zum Antworten