Heim >Backend-Entwicklung >C++ >Wie kann ich Nullzeichen in einen C-std::string einbetten?

Wie kann ich Nullzeichen in einen C-std::string einbetten?

DDD
DDDOriginal
2024-11-27 09:30:14143Durchsuche

How Can I Embed Null Characters in a C   std::string?

Einbettung eingebetteter Nullen in std::string: Eine umfassende Anleitung

Wenn Sie einen std::string erstellen möchten, der ein eingebettetes Nullzeichen enthält, müssen Sie verschiedene Maßnahmen ergreifen Syntaxnuancen abhängig von der von Ihnen verwendeten C-Version.

C 14 und höher: Einführung in String Literale

C 14 führte String-Literale ein und bot eine praktische Methode zum Konstruieren von std::strings mit eingebetteten Nullen:

#include <iostream>
#include <string>

using namespace std::string_literals;

int main() {
    std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs");   // Two characters, as input is interpreted as a C-string
std::string x("pqrs", 5); // 5 Characters, as input is now a char array with 5 characters
-op"s; // Notice the "s" at the end, indicating a std::string literal std::cout << s << "\n"; }

Vor C 14: Verwenden von Zeichenarrays

Vor C 14 nahm der std::string-Konstruktor, der ein const char* erwartete, C-Strings an, die nullterminiert sind. Um dies zu umgehen, müssen Sie den Konstruktor verwenden, der ein char-Array und eine Länge benötigt:

<🎝🎝🎝>

Wichtige Punkte

  • std::strings sind nicht nullterminiert, aber Sie kann mit der c_str()-Methode einen C-String-Zeiger erhalten.
  • Doug Ts Antwort schlägt die Verwendung eines Vektors vor als alternativer Ansatz.

    Das obige ist der detaillierte Inhalt vonWie kann ich Nullzeichen in einen C-std::string einbetten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn