- ベストアンサー
std::stringクラスのc_str()で取得した文字列をいじることは可能ですか?
c++で、以下のようなコードは問題ないでしょうか? // chrの中身の小文字を大文字にする void func(char* chr); std::string str("aaa"); const char* str_p = std.c_str(); func((char*)str_p); ←これは大丈夫ですか? //このあとstrに対して文字列を追加したりいろいろ処理する。 このようにc_strで取得したconst char*をconstをはずして 強引にいじくることは問題ないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
許されていません。 できるかもしれないけど、その結果は保証されません。
その他の回答 (2)
- ddnp009
- ベストアンサー率25% (15/58)
回答No.3
>強引にいじくることは問題ないでしょうか? 問題です。やってはいけません。 戻り値が const char* である というのは、それが示す文字配列を加工対象にできない、 してはいけないというライブラリ側の意思表示と捉えてください。
質問者
お礼
了解しました。 ありがとうございました。
- BearCave
- ベストアンサー率20% (189/909)
回答No.2
可能か不可能でいうと可能ですが、そうゆう利用方法は想定されていないので、推奨されません。
質問者
お礼
おかしなことになるかもということですね。 ありがとうございました。
お礼
やはりそうですか。 ありがとうございました。