をまたはstd::string
に変換するにはどうすればよいですか?char*
const char*
ベストアンサー1
もしあなたがただstd::string
を必要とする関数にはconst char *
、.c_str()
:
std::string str;
const char * c = str.c_str();
非constが必要な場合はchar *
、.data()
:
std::string str;
char * c = str.data();
.data()
は C++17 で追加されました。それ以前は、 を使用できます&str[0]
。
std::string
が の場合const
、のように代わりに.data()
が返されることに注意してください。const char *
.c_str()
文字列が破棄されたり、メモリが再割り当てされると、ポインターは無効になります。
ポインターは null で終了する文字列を指しており、終端文字は にカウントされませんstr.size()
。終端文字に null 以外の文字を割り当てることはできません。