[問題] 串列收到的16進制直接轉成字串

作者: smvenjoy (好好壞壞~~)   2018-11-11 10:45:57
開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
問題(Question):
假設欲將收到4個封包的數值,直接轉成字串格式,
如下:
char c[4];
c[0] = 0x11;
c[1] = 0x22;
c[2] = 0x33;
c[3] = 0x44;
想要得到一字串,輸出結果為
data="11223344"
想請問這樣可以使用什麼函式直接轉出來嗎?
謝謝!
作者: kokal (細菌)   2018-11-11 11:24:00
sprintf和%xbuffer記得要留'\0'的空間
作者: smvenjoy (好好壞壞~~)   2018-11-11 11:32:00
有試過,但轉出來不是我想要的char data[9];sprintf((char*) &data[0],"%x", &(c[0]))印出data的結果並不對耶
作者: idiont (supertroller)   2018-11-11 11:45:00
你要的是c[0]的值 不是記憶體位址 不用加&
作者: PkmX (阿貓)   2018-11-11 13:17:00
Endianness
作者: kokal (細菌)   2018-11-11 17:34:00
sprintf(buf, "%x%x%x%x", c[0], c[1], c[2], c[3]);
作者: smvenjoy (好好壞壞~~)   2018-11-11 23:19:00
謝謝教導,已解決
作者: japing (上進心)   2018-11-15 09:48:00
原來可以這樣做XDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com