std::string を char* または char[]
std::string を char* またはC の char[] データ型は自動的に変換されないため、明示的なメソッドが必要です。
方法 1: c_str() を使用する
To std::string の C 文字列バージョンを取得するには、 c_str() メソッド。このメソッドは const char を返します。非 const char の場合は、.data():
std::string str = "string"; const char *cstr = str.c_str(); // const char* char *cstr = str.data(); // non-const char*
方法 2: Vector にコピーする
std::string 文字をstd::vector
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1); char *ptr = cstr.data(); // pointer to c-string
方法 3: 手動配列割り当て (非推奨)
手動で配列を割り当てるC 文字列:
const char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // ... use the array ... delete [] cstr;
覚えておくことが重要です手動によるメモリ管理はエラーを引き起こす可能性があるということです。ベスト プラクティスとして、.c_str() または .data().
を使用することをお勧めします。以上がC std::string を char* または char[] に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。