char配列をCStringに変換する方法とは?

解決


Pen  2010-01-08 04:15:51  No: 71229

環境はVC2005です。
100バイトの0xffが入ったchar配列があり、
CStringに変換したいのですがどのようにしたら良いでしょうか?

===
char test[100];
memset( test, 0xff, sizeof(test) );

CString strTest;

//testをstrTestにいれたいのですが、分かりません。

ご教授お願いいたします。


  2010-01-08 04:48:22  No: 71230

strTest = test;
でOKです。
しかしこの変換にどんな意味があるのか非常に気になります。
そもそもcharの0xffをCStringに変換するとどうなるべきなんでしょうか?


επιστημη  URL  2010-01-08 04:49:21  No: 71231

↓コンストラクタの中から適切なものを探してください。
http://msdn.microsoft.com/ja-jp/library/cws1zdt8(VS.80).aspx


επιστημη  URL  2010-01-08 05:00:38  No: 71232

> strTest = test; でOKです。

'\0'終端されてないのに?


Pen  2010-01-08 18:00:01  No: 71233

返信が遅くなり申し訳ありません。

strTest = test;
または、コンストラクタに入れてもASCII文字に変換されてしまい、100バイトの"0xff"が、
"・・・・・・・・・・・・・・・・(100バイト分続く)"
となってしまいます。

期待値は、
"0xff0xff0xff0xff0xff0xff0xff0xff(100バイト分続く)"
となることです。

お手数ですが、ご教授お願いします。


Blue  2010-01-08 20:04:01  No: 71234

1バイトだったら

#include <stdio.h>

int main()
{
   unsigned char c = 0xff;
   printf("0x%2x\n", c);
   return 0;
}

のような結果を期待していますか?
0xff というのは数値上の表記ですのでそのまま文字列にはできません。
自前でフォーマットするようにしないといけないです。


Pen  2010-01-08 20:38:00  No: 71235

フォーマットすれば良いのですね。
解決しました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加