アプリ版:「スタンプのみでお礼する」機能のリリースについて

突然ですが、DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか?
あれば関数名など教えていただけると助かります。
いそいでいます。お願いしますm(_ _)m

A 回答 (3件)

どんな風に変換するかによると思うけど・・・・。



メモリ上の話で言えば、例えばWindows(32bit)だと、DWORDは32bit(4byte)、charは8bit(1byte)になるよね。

なので、リトルエンディアンだと、泥臭い処理をするなら以下のようになる。

--------
DWORD* pdw;
char* pc;

// ここで pdwが確かな場所を指すようにする。
*pc++ = (char)(*pwd & 0xff);
*pc++ = (char)(*pwd >> 8 & 0xff);
*pc++ = (char)(*pwd >> 16 & 0xff);
*pc++ = (char)(*pwd++ >> 24 & 0xff);
--------

後はこれを変換したい分だけループしてあげれば、一応目的は果たせそうだけど・・・・?
charはunsigned charかBYTEの方が良いかも知れない。
    • good
    • 0
この回答へのお礼

できました!!
分かりやすい回答どうもありがとうございましたm(_ _)m

お礼日時:2005/09/08 21:05

> DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか?



「DWORD*がたの文字列」とは何でしょうか?
文字列は通常charまたはwchar_tの配列です。DWORD*がたの文字列が、どんな表現方法になっているのか分からないと、どうすることもできません。
    • good
    • 1

多分DWORD(=unsigned long)


の値が50なら
char[] の"50"とかにしたいのだと思いますが

DWORD dw = 50;
char buf[8];
sprintf( buf , "%u" , dw);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています