開発環境はVC2005です。
CStringの文字列をASCIIコードの文字列に変換する方法を教えてください。
例えば、
CString tmp = _T("ABC");
CString strAscii;
/* ASCIIコードに変換する処理。 */
AfxMessageBox( strAscii );
とした場合、メッセージボックスに"0x41 0x42 0x43"と表示されるようにしたいのですが。
ちなみに、文字AはASCIIコードで0x41、文字BはASCIIコードで0x42、文字CはASCIIコードで0x43です。
ご教授よろしく願致します。
この問題、文字のコード表現という難しい問題をはらんでいるので、
ASCII コードにない文字をどう表記すればいいのか、その要求仕様で変わる。
"ABC" に対して "0x41 0x42 0x43" はまあいいとして
"あいう" に対してどう表記されればいいの?
まずはその辺から。
早速のお返事ありがとうございます。
すみません、説明不足でした。
CString tmpには、
ひらがな、カタカナは含まないものとします。
含むものはアルファベット、数字のみです。
よろしくお願いいたします。
具体的に何がわからないのでしょうか?
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)が便利です。
んぢゃ、難しい話は抜きにして 'A' から "0x41" を作ることはできる?
それができれば後は簡単だよね。
解決しました。 ありがとうございました。
ツイート | ![]() |