char array zu std::string



  • Hey leute ich suche eine Möglichkeit ein Char array in einen string zu bekommen.
    Ich habe bereits diese Möglichkeit gefunden:

    std::string STRING=CharArray
    

    allerdings kann ich diese Möglichkeit nicht verwenden weil der string in meinem Programm schon vorher initialisiert wird 😕

    und eine andere möglichkeit habe ich leider nicht gefunden.
    Gibt es dasfür evtl. eine Funktion oder eine andere Lößung ?

    lg Sc0rpe



  • Wie wäre es mit

    STRING=CharArray;
    

  • Mod

    Doch, Zuweisung oder Konstruktoraufruf sind schon der richtige Weg, je nachdem, ob der String schon vorher existiert oder gerade erst erstellt wird.

    allerdings kann ich diese Möglichkeit nicht verwenden weil der string in meinem Programm schon vorher initialisiert wird 😕

    Und? Dann benutz eine einfache Zuweisung.
    http://www.cplusplus.com/reference/string/string/operator=/



  • Sc0rpe schrieb:

    std::string STRING=CharArray
    

    Normalerweise ist mir die Benennung von Variablen eigentlich egal, aber ich hoffe du verwendest nicht wirklich GROSSSCHREIBUNG für normale Variablen (Dies ist in der Regel eine Schreibweise die man bei Makros, und vielleicht noch bei globalen Konstanten findet).



  • Sc0rpe schrieb:

    Normalerweise ist mir die Benennung von Variablen eigentlich egal, aber ich hoffe du verwendest nicht wirklich GROSSSCHREIBUNG für normale Variablen (Dies ist in der Regel eine Schreibweise die man bei Makros, und vielleicht noch bei globalen Konstanten findet).

    da kann ich nur zustimmen, dass ist nicht die "feine Englishe art" 🙂



  • Ich glaube, eine potenziell bessere Möglichkeit, einem std::string ein char -Array zuzuweisen:

    STRING.assign(CharArray, CharArray + sizeof CharArray);
    

    Vielleicht geht es ja um Binär-Daten, wer weiß.



  • Sone schrieb:

    Ich glaube

    Guter Indikator, um das Posten sein zu lassen. Gerade wenn das Problem schon gelöst ist.

    Sone schrieb:

    STRING.assign(CharArray, CharArray + sizeof CharArray);
    

    Reserviert wahrscheinlich zu viel Speicher. Und die nächste Frage wird sicher sein, warum das mit char* nicht funktioniert. Sowieso wurde auf eine bessere Möglichkeit (Konstruktor oder Zuweisungsoperator) schon hingewiesen.

    Sone schrieb:

    Vielleicht geht es ja um Binär-Daten, wer weiß.

    Bestimmt, dafür verwendet man natürlich die auf Zeichenketten ausgelegte std::string -Klasse. Triff bitte nicht ständig irgendwelche weltfremden Annahmen, von denen der Threadersteller nichts erwähnt hat, nur um verwirrende Posts zu rechtfertigen.


Anmelden zum Antworten