この投稿では、C++で文字列をバイトアレイに変換する方法について説明します。

C++ 11以降、 std::byte 実際のバイトデータを表します。この投稿は、変換するためのいくつかのもっともらしいオプションの概要を提供します std::stringstd::byte アレイ。

1.使用する std::memcpy

を使用してアレイのバイナリコピーを実行するための一般的なソリューション std::memcpy 関数。文字列をバイトアレイに変換するために使用できます std::string::data 関数。文字列オブジェクトのC文字列表現を含むアレイへのポインタを返します。

ダウンロード  コードを実行する

出力:

67 43 43

2.使用する std::transform

別の代替手段は、 std::transform 関数。指定された範囲要素のそれぞれに指定された操作を適用し、結果を別の範囲に格納します。これは、以下を使用して示されています std::byte コンストラクタ。

ダウンロード  コードを実行する

出力:

67 43 43

 
この関数の動作は、実質的に次と同等です。

ダウンロード  コードを実行する

出力:

67 43 43

これで、C++で文字列をバイトアレイに変換できます。