Nullen in einem String speichern.



  • Hallo!
    Kann ich Nullen in einem String speichern?

    string s = "a\0b\0c";
    	cout << s.size() << endl;
    

    Obiger Code gibt mir eine Größe von 1 aus, erwartet hätte ich 5!
    Irgendwo glaube ich gelesen zu haben, das die Klasse string auch Nullbytes speichern kann. Sollte ich mich geirrt haben?



    1. schrieb:

    Hallo!
    Kann ich Nullen in einem String speichern?

    string s = "a\0b\0c";
    	cout << s.size() << endl;
    

    Obiger Code gibt mir eine Größe von 1 aus, erwartet hätte ich 5!
    Irgendwo glaube ich gelesen zu haben, das die Klasse string auch Nullbytes speichern kann. Sollte ich mich geirrt haben?

    Das geht. Aber der Konstruktor denkt, Du hättest ihm einen Nullterminierten String reingeschubst. Laß Dir was anderes zum Reinschubsen einfallen und Du hast auch feine Nullen drin.



  • Versuchs mal mit

    string s("a\0b\0c", 5);
    cout << s.size() << endl;
    

    siehe auch hier:
    http://www.cplusplus.com/reference/string/string/string/



    1. schrieb:

    Hallo!
    Kann ich Nullen in einem String speichern?

    string s = "a\0b\0c";
    	cout << s.size() << endl;
    

    Obiger Code gibt mir eine Größe von 1 aus, erwartet hätte ich 5!
    Irgendwo glaube ich gelesen zu haben, das die Klasse string auch Nullbytes speichern kann. Sollte ich mich geirrt haben?

    Versuch's mal mit:

    std::string s("a\0b\0c", 5);
    

    EDIT: Zu spät 😉



  • Danke sehr!


Anmelden zum Antworten