- C++相談室 part114
224 :デフォルトの名無しさん[sage]:2014/10/10(金) 06:51:54.72 ID:PjwRa4Gs - constなstringをunsigned char* に型変換したいのですが、
どうやってもエラーします。どうすればよいでしょうか? VS2013のC++です。 const string str = "12345"; unsigned char *p =(???) str.c_str();
|
- C++相談室 part114
227 :デフォルトの名無しさん[sage]:2014/10/10(金) 07:18:48.12 ID:PjwRa4Gs - >>225
ありがとうございました。 reinterpret_castとかstatic_castとか、そういうのを使ってやるのかな と思っていろいろ試したのですが、出来ませんでした。 >>226 constというのが良く分っていません。
|
- C++相談室 part114
231 :デフォルトの名無しさん[sage]:2014/10/10(金) 07:47:36.25 ID:PjwRa4Gs - >>229
解説ありがとうございました。なんとなく理解できました。 結論としては、皆さんに教えていただいた方法でstringを unsigned char*にキャストして使っても問題ないですか? あるいは、unsigned charなstringは無いのでしょうか? std::ustring と呼べばいいのかな。
|
- C++相談室 part114
235 :デフォルトの名無しさん[sage]:2014/10/10(金) 09:01:00.88 ID:PjwRa4Gs - >>232>>233
unsigned char* を引数に取る関数にそのstringを渡す為です。
|
- C++相談室 part114
266 :デフォルトの名無しさん[sage]:2014/10/10(金) 20:37:22.03 ID:PjwRa4Gs - unsigned char* のキャストで質問した者ですが、
また質問があります。 charの配列をstringに変換したい時には、 char *p = "12345"; string str(p); で行けると思いますが、charの中に非ASCII文字が有る場合にも、char配列の全体を stringにしたいのですが、以下のような場合、"123%" になってしまいました。 char *p = "123\045"; string str(p); どうすれば、 str = "123\045" のような文字列が作れますか?
|
- C++相談室 part114
273 :266[sage]:2014/10/10(金) 22:06:10.61 ID:PjwRa4Gs - みなさん有難うございました。
まだ完全には理解できていませんが、有る程度分ってきました。
|