strcat mit mehreren Nullchars



  • Hallo,
    für eine (WinAPI) Funktion benötige ich einen String der sich aus 2 Strings mit abschließendem Nullchar aufbaut (d.h.: Text, Nullchar, Text, Nullchar, Nullchar). Die beiden Teilstrings sollten nacheinander gestellt werden, wie hier im String "neu" dargestellt:

    teil1 = "Teil1";
    teil2 = "Teil2";
    
    neu = "Teil1\0Teil2\0";
    

    Wie kann ich nun den String "neu" aus den beiden Teilstrings erstellen?
    Mit strcat() geht es ja nicht, da strcat annimnt, ein String sei zu Ende bei \0..

    MfG,
    Max



  • du könntest std::string s verwenden und dann per c_str einen const char* an deine funktion übergeben:

    std::string foo("Test");
    foo += '\0';
    foo += "Test";
    foo += '\0';
    
    //oder:
    const char* bar = "Test\0Test";
    string baz(bar, bar+10);
    
    //verwende:
    cout << baz << endl;
    cout << baz.c_str() << endl;
    


  • memcpy



  • strcpy



  • Hallo,
    ich habe jetzt memcpy verwendet.
    Man nimmt am besten eine size_t variable, in der man mitzählt, wie lang der string ist (weil ja strlen nicht mehr funktioniert..), und kopiert dann an die stelle "&stringname[szPosition]" die neuen Daten hin.

    Danke für alle Antworten!


Anmelden zum Antworten