CStringの文字列をASCIIコードの文字列に変換するには?

解決


LA  2010-01-19 14:57:34  No: 71283  IP: [192.*.*.*]

開発環境はVC2005です。
CStringの文字列をASCIIコードの文字列に変換する方法を教えてください。
例えば、

CString tmp = _T("ABC");
CString strAscii;

/* ASCIIコードに変換する処理。 */

AfxMessageBox( strAscii );

とした場合、メッセージボックスに"0x41 0x42 0x43"と表示されるようにしたいのですが。
ちなみに、文字AはASCIIコードで0x41、文字BはASCIIコードで0x42、文字CはASCIIコードで0x43です。
ご教授よろしく願致します。

編集 削除
tetrapod  2010-01-19 15:18:56  No: 71284  IP: [192.*.*.*]

この問題、文字のコード表現という難しい問題をはらんでいるので、
ASCII コードにない文字をどう表記すればいいのか、その要求仕様で変わる。
"ABC" に対して "0x41 0x42 0x43" はまあいいとして
"あいう" に対してどう表記されればいいの?
まずはその辺から。

編集 削除
LA  2010-01-19 16:01:26  No: 71285  IP: [192.*.*.*]

早速のお返事ありがとうございます。
すみません、説明不足でした。

CString tmpには、
ひらがな、カタカナは含まないものとします。
含むものはアルファベット、数字のみです。

よろしくお願いいたします。

編集 削除
Blue  2010-01-19 16:12:23  No: 71286  IP: [192.*.*.*]

具体的に何がわからないのでしょうか?

CString tmp = _T("ABC");

とすれば、

tmp[0] が _T('A'), tmp[1] が _T('B'), tmp[2] が _T('C'), tmp[3] が _T('\0')
というのはわかりますよね?
(すべてTCHAR型)

TCHAR c = _T('A');

数値ですと 0x0041 です。


数値をCStringにいれるときは CString::Format(場合によってCString::AppendFormat)が便利です。

編集 削除
tetrapod  2010-01-19 16:13:00  No: 71287  IP: [192.*.*.*]

んぢゃ、難しい話は抜きにして 'A' から "0x41" を作ることはできる?
それができれば後は簡単だよね。

編集 削除
LA  2010-01-19 19:01:42  No: 71288  IP: [192.*.*.*]

解決しました。  ありがとうございました。

編集 削除