char in std::string und 0 bytes



  • Abend!

    Also ich bin nun schon eine Weile am suchen, aber ich denke, dass ich nun endlich nen Fehler gefunden habe, der mich schon seit einigen Tagen fertig macht.

    Es geht um eine Dateiübertragung über sockets, speziell nun, die Daten, die ich als "Päckchen" in einem char array habe in einen string zu quetschen.

    Nun habe ich schon insert, append, operator=, assign und mit Konstruktor, alles ausprobiert, aber es scheint, als würden die Zeichen immer nur bis zum ersten \0 byte vom char array in den string kopiert.

    1. Kann das sein?
    2. Gibt es eine Möglichkeit wirklich das gesamte char array in den string zu kriegen?



  • std::string s(buffer, length);
    


  • Ok.. sehe gerade ich war mit assign() auf der richtigen Spur...

    char dasArray[200];
    string s;
    // array fuellen...
    
    s.assign(dasArray, 200);
    


  • Ja dafür gibts extra nen Konstruktor: template <class InputIterator>
    basic_string(InputIterator first, InputIterator last)

    nächstens einfach mal ne Doku bemühen, bevor du gleich nen thread aufmachst


Anmelden zum Antworten