人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VC++ 2008 SDKでプログラムを制作しています。

char *str等の文字列データを
BYTE byte[400]に変換するには
どうすればよろしいのでしょうか?

●質問者: makocan
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:byte Char SDK STR VC++
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tezuboa
●35ポイント

共用体(union)を使用するのが簡単だと思います。

以下にサンプルプログラム(普通のC言語ですが)を載せます。


#include <windows.h>

#include <stdio.h>

void main()

{

char *str ={"aiu"};

union{

char moji[400];

BYTE bt[400];

} u;

sprintf(u.moji,str); // strをu.strにセット

printf("%s\n",u.moji); // 文字列を参照

printf("%x %x %x %x\n",u.bt[0],u.bt[1],u.bt[2],u.bt[3]); // BYTEを参照

}


unionにより、strとbtは同じエリアを示しますので、mojiに文字列をセットし、btを参照しています。


http://q.hatena.ne.jp/


2 ● espresso3389
●35ポイント

最終的に何がされたいのかを明示した方が良いと思いますが、通常は、

char* str = "Hello, World!";

BYTE* p = (BYTE*)str;

でバイトのポインタになっています。配列にしたいのであれば、

BYTE byte[400];

size_t len = strlen(str);

if(len > 400) len = 400; // 文字列長が長すぎたときの処理

memcpy(byte, str, len);

のようにメモリをコピーするだけで良いはずです。

あるいは、ひょっとして、特定の文字列を特定の文字コードで表現した場合のバイナリ表現についてご質問でしょうか?

だとすれば、また、話は変わってきますが・・・。

http://dummy.example.com

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ