MFCでCStringと他の型の相互変換

MFCでは文字列の型としてCStringという型を使用しますが、C言語やC++で使用される文字列や数値との直接変換ができない場合があります。

この記事では、MFCのCStringと他の型との相互変換方法について解説を行います。

CString型の基本

MFCでは文字列としてCString型を使用します。

CString型はプロジェクトの「使用する文字セット」によって「CStringW型」と「CStringA型」とを自動で使い分けられます。

CStringW型 CStringA型
使用する文字セット Unicode文字セット マルチバイト文字セット
内部データの型 wchar_t char

どちらの場合でも特に意識することはありませんが、生データを取得する際には型が違うので注意が必要です。

また、CStringW型のデータをchar型のデータに変換(C言語の標準関数を使用したり)する場合には以下のようにCStringAでキャストするだけで良いです。

wchar_t用の関数も用意されていますが、いちいち覚えるのが面倒な場合にはCStringA型にキャストしてしまえば良いだけなので、こちらで覚えておいても良いでしょう。

CStringと他の型の相互変換

ここでは、「CString型」と「char*型」「std::string型」「int型」「double型」の相互変換方法をまとめます。

CStringからの変換

CString型からchar*型への変換

char*型への変換を行うにはCString型から生データを取得してstrcpy関数で文字列の複製を行います。

CString型からstd::string型への変換

std::string型への変換を行うにはCString型から生データを取得して直接代入をします。

CString型からint型への変換

int型への変換を行うにはCString型から生データを取得して標準関数のatoi関数、_ttoi関数で整数型への変換を行います。

CString型からdouble型への変換

double型への変換を行うにはCStringから生データを取得して標準関数のatof関数、_ttof関数で実数型への変換を行います。

CStringへの変換

char*型からCString型への変換

char*型からの変換を行うにはCStringに直接代入をします。

std::string型からCString型への変換

std::string型からの変換を行うにはstd::stringから生データを取得してCStringに直接代入をします。

int型からCString型への変換

int型からの変換を行うにはCStringのFormat関数で変換を行います。

double型からCString型への変換

double型からの変換を行うにはCStringのFormat関数で変換を行います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です