ホームページ >バックエンド開発 >C++ >C でヌル文字が埋め込まれた std::string を作成するにはどうすればよいですか?

C でヌル文字が埋め込まれた std::string を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 02:38:11760ブラウズ

How Can I Create a std::string with Embedded Null Characters in C  ?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。