std::string を char* または char[] に変換します
std::string を char* または char[] に変換しますデータ型の変換は C では一般的なタスクですが、自動変換はサポートされていないことに注意してください。これを実現するには、c_str() メソッドを使用して、std::string の C スタイルの文字列表現を取得できます。
std::string str = "string"; const char *cstr = str.c_str();
c_str() メソッドは const char ポインタを返すため、非 const ポインタが必要な場合は、代わりに data() メソッドを使用できます:
char *cstr = str.data();
代替オプション:
c_str() と data() の使用に加えて、std::string を char* に変換する他の方法もあります:
ベクターへの文字のコピー:
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
このバージョンには注意してください終端の null 文字 (' ') をコピーします。
手動メモリ管理 (注意して使用してください):
char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // do stuff delete [] cstr;
以上がC で std::string を char* または char[] に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。