std::string を const char* または char* に変換する方法 質問する

std::string を const char* または char* に変換する方法 質問する

をまたは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 以外の文字を割り当てることはできません。

おすすめ記事