std::string を char* または char[]
C では、 std:: を変換する必要がある場合があります。一連の文字を保持する文字列を、char* または char[] で表される NULL で終わる文字配列に変換します。ただし、代入演算子を使用した直接変換ではエラーが発生します。
この変換を実現するには、いくつかの方法が使用できます。
1. c_str() メソッド:
std::string の c_str() メソッドは、基になる NULL で終わる C スタイルの文字列へのポインターを返します。このポインタは、char* 変数に直接割り当てることができます。
std::string str = "string"; const char *cstr = str.c_str();
2. data() メソッド:
std::string の data() メソッドも、基になる C スタイルの文字列へのポインターを返しますが、これは非 const です。このポインタは、const 修飾子なしで char* 変数に割り当てることができます。
std::string str = "string"; char *cstr = str.data();
その他のオプション:
は作成できます文字の std::vector を取得し、 std::string からそれに文字をコピーします。次に、ベクターの data() メソッドを使用して char* ポインターを取得できます。
手動で行うことができます。 new 演算子を使用して文字の配列を割り当て、std::string から配列に文字をコピーし、その配列を char* ポインターとして使用します。手動によるメモリ管理の問題があるため、このアプローチは慎重に使用する必要があります。
要約すると、std::string の c_str() メソッドと data() メソッドは、std::string を char* に変換する便利な方法を提供します。または char[] データ型。 std::vector へのコピーや手動メモリ割り当てなどの他のオプションは、特定の状況で使用できます。
以上がC で `std::string` を `char*` または `char[]` に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。