strstr()と_mbsstr()について
Posted: 2014年8月17日(日) 22:34
初めて投稿します。
VisualStudio2012で、MFCを利用しています。
以下の二点について教えてください。
1. Shift-jisでの全角文字などのマルチバイト文字には_mbsstr()を使わないといけないのかと思っていましたが、strstr()でも問題なく動作するように見える。strstr()と_mbsstr()の使い分けはどのようにしたらいいのでしょうか。
2. const char*とchar*、さらにはconst unsigned char*の違いが十分に理解できません。
たとえば_mbsstr()の引数としてconst unsigned char*が求められている。
std::stringのc_str()で得られるconst char*の文字列を引数として与えたいので、(const unsigned char*)で単純にキャストすると動作したがこれでいいのでしょうか。
検索対象文字列にもconst unsigned char*が求められているので、(const unsigned char*))"あいうえお"などとしたがこれでいいのでしょうか。
または、const char*をchar*にキャストすることもできましたが、これはやってはいけないような気がします。どうでしょうか?
VisualStudio2012で、MFCを利用しています。
以下の二点について教えてください。
1. Shift-jisでの全角文字などのマルチバイト文字には_mbsstr()を使わないといけないのかと思っていましたが、strstr()でも問題なく動作するように見える。strstr()と_mbsstr()の使い分けはどのようにしたらいいのでしょうか。
2. const char*とchar*、さらにはconst unsigned char*の違いが十分に理解できません。
たとえば_mbsstr()の引数としてconst unsigned char*が求められている。
std::stringのc_str()で得られるconst char*の文字列を引数として与えたいので、(const unsigned char*)で単純にキャストすると動作したがこれでいいのでしょうか。
検索対象文字列にもconst unsigned char*が求められているので、(const unsigned char*))"あいうえお"などとしたがこれでいいのでしょうか。
または、const char*をchar*にキャストすることもできましたが、これはやってはいけないような気がします。どうでしょうか?