Null 文字が埋め込まれた std::string の作成
問題:
試行時埋め込み null 文字 ( ) を含む行を含む std::string を構築するには、次のようにします。として:
std::string my_string("a<pre class="brush:php;toolbar:false">#include <iostream> #include <string> int main() { using namespace std::string_literals; std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs"); // Two characters because input assumed to be C-String std::string x("pqrs",5); // 5 Characters because input is now a char array with 5 characters.-op"s; // Notice the "s" at the end of the string literal std::cout << s << "\n"; }b");
ヌル文字の前の文字のみが保持されます。 null 文字が埋め込まれた文字列を適切に構築するにはどうすればよいですか?
解決策:
C 14 以降
C 14 導入文字列リテラル。s を使用して、null 文字が埋め込まれた std::string を直接作成できるようにします。 suffix:
C 14 より前
C 14 より前では、std::string コンストラクターは、入力が C スタイルの文字列であると想定し、ヌル文字。埋め込まれた null 文字を処理するには、char 配列と長さを受け取るコンストラクターを使用します。
注: std::string は本質的に null で終了しません。ただし、c_str() メソッドは、ヌル終端文字を含む C 文字列を含む内部バッファへのポインタを提供します。
以上がC でヌル文字が埋め込まれた std::string を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。