MFCとSTLと文字列
あるいは、CStringとstd::stringとchar *
で、いつもCString → char * → std::stringな変換で迷うのでメモを残す
CString から char * への変換
char * から CStringへの変換
CString str = "いろはにほへと";
char * p = new char[str.GetLength() + 1];
strcpy(p,str);
delete [] p;
std::stringからchar *への変換
char a[6] = "abcde";
CString cstrA;
cstrA = a;
char * からstd::stringへの変換
std::string strA = "abcdefg";
char a[] = strA.c_str(); // 末尾に0x00の挿入されたchar *として使える
char a[8] = "abcdefg";
std::string stdB(a); // 引数としてconst char * を受け取るコンストラクタを使う