String2CharArray für C++?



  • std::string str("Hallo");
    std::vector<char> chararray(str.begin(), str.end());
    


  • Simon2 schrieb:

    CStoll schrieb:

    ...Warum über strncpy()? std::string bietet sogar eine eigene Methode copy() dafür an.

    Oha, das wusste ich auch noch nicht ... peinlich.
    🙄

    Ich auch nicht. Ist aber auch egal, da es die Lösung in dem Sinn nicht wirklich verbessert.
    Aber danke für den Hinweis 🙂



  • GPC schrieb:

    Simon2 schrieb:

    CStoll schrieb:

    ...Warum über strncpy()? std::string bietet sogar eine eigene Methode copy() dafür an.

    Oha, das wusste ich auch noch nicht ... peinlich.
    🙄

    Ich auch nicht. Ist aber auch egal, da es die Lösung in dem Sinn nicht wirklich verbessert.
    Aber danke für den Hinweis 🙂

    Naja, ich finde es schon gut, wenn man nicht noch cstring einbinden muß (für strncpy())....

    Aber mir ging es einfach prinzipiell darum, dass ich immer zu strncpy() gegeriffen habe in so einer Situation - und das eben nicht mehr brauche ! 👍

    Gruß,

    Simon2.



  • Simon2 schrieb:

    GPC schrieb:

    Simon2 schrieb:

    CStoll schrieb:

    ...Warum über strncpy()? std::string bietet sogar eine eigene Methode copy() dafür an.

    Oha, das wusste ich auch noch nicht ... peinlich.
    🙄

    Ich auch nicht. Ist aber auch egal, da es die Lösung in dem Sinn nicht wirklich verbessert.
    Aber danke für den Hinweis 🙂

    Naja, ich finde es schon gut, wenn man nicht noch cstring einbinden muß (für strncpy())....

    Hm, der Header ist nicht so riesieg und ich brauch ihn meistens eh, weil ich oft auch char * verwende.

    Aber mir ging es einfach prinzipiell darum, dass ich immer zu strncpy() gegeriffen habe in so einer Situation - und das eben nicht mehr brauche ! 👍

    Ich werd's nach wie vor tun 😉


  • Mod

    GPC schrieb:

    Simon2 schrieb:

    GPC schrieb:

    Simon2 schrieb:

    CStoll schrieb:

    ...Warum über strncpy()? std::string bietet sogar eine eigene Methode copy() dafür an.

    Oha, das wusste ich auch noch nicht ... peinlich.
    🙄

    Ich auch nicht. Ist aber auch egal, da es die Lösung in dem Sinn nicht wirklich verbessert.
    Aber danke für den Hinweis 🙂

    Naja, ich finde es schon gut, wenn man nicht noch cstring einbinden muß (für strncpy())....

    Hm, der Header ist nicht so riesieg und ich brauch ihn meistens eh, weil ich oft auch char * verwende.

    Aber mir ging es einfach prinzipiell darum, dass ich immer zu strncpy() gegeriffen habe in so einer Situation - und das eben nicht mehr brauche ! 👍

    Ich werd's nach wie vor tun 😉

    irgendwie erscheint mir strncpy als die mit Abstand schlechteste Variante sowohl hinsichtlich Performance als auch Stil und sie kommt auch nicht mit eingebetteten \0 zu recht - vielleicht ist das aber gewollt. Solange sich niemand anderes damit quälen muss, mag das ok sein.



  • Hi,

    ich wollte auch strncpy() nicht verdammen .. aber es ist immer besser, noch eine Alternative zu kennen.

    Gruß,

    Simon2.



  • Nein, versuche es lieber mit CString<*CMap<-exp(PI)><Ö>>



  • Ich verwende für gewöhnlich memcpy, wenn ich cstrings kopiere.



  • Wollte auch grad sagen, ich verwenden meist memcpy() wenn ich die Grösse schon kenne, oder halt std::copy - je nachdem.



  • lolz_offline schrieb:

    Ich verwende für gewöhnlich memcpy, wenn ich cstrings kopiere.

    ... sollte ich nicht wundern, wenn einige Implementationen sowieso strcpy() als memcpy(..., ..., strlen()) umgesetzt haben ...
    Nachdem ich

    #define strncpy memcpy
    

    gesehen habe, überrasct mich gar nichts mehr...

    Gruß,

    Simon2.


Anmelden zum Antworten