Erstellen eines std::string mit eingebettetem Nullzeichen
Beim Versuch, einen std::string mit einem eingebetteten Nullzeichen mit einer Syntax wie zu erstellen std::string my_string("a\0b");, es wird nur ein Zeichen beibehalten. Dies liegt daran, dass der std::string-Konstruktor einen C-String erwartet, der nullterminiert ist. Bei der Begegnung mit dem Nullzeichen wird die Analyse angehalten.
Um einen std::string mit einer eingebetteten Null korrekt zu erstellen, berücksichtigen Sie die folgenden Ansätze:
C 14 und höher:
Führen Sie String-Literale mit dem Suffix s ein, um einen std::string zu erstellen, ohne die Nullzeichen zu interpretieren. Dies kann erreicht werden mit:
std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs", 5);
Vor C 14:
Verwenden Sie einen String-Konstruktor, der ein Zeichenarray und seine Länge akzeptiert:
Denken Sie daran, dass std::string keine Nullterminierung verwendet. Über die Methode c_str() können Sie jedoch einen Zeiger auf einen internen Puffer erhalten, der einen C-String enthält.
Das obige ist der detaillierte Inhalt vonWie kann ich einen std::string mit einem eingebetteten Nullzeichen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!