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

看板C_and_CPP作者 (好好壞壞~~)時間5年前 (2018/11/11 10:45), 編輯推噓2(208)
留言10則, 5人參與, 5年前最新討論串1/1
開發平台(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" 想請問這樣可以使用什麼函式直接轉出來嗎? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.58.107 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1541904359.A.06A.html

11/11 11:24, 5年前 , 1F
sprintf和%x
11/11 11:24, 1F

11/11 11:29, 5年前 , 2F
buffer記得要留'\0'的空間
11/11 11:29, 2F

11/11 11:32, 5年前 , 3F
有試過,但轉出來不是我想要的
11/11 11:32, 3F

11/11 11:34, 5年前 , 4F
char data[9];sprintf((char*) &data[0],"%x", &(c[0]))
11/11 11:34, 4F

11/11 11:35, 5年前 , 5F
印出data的結果並不對耶
11/11 11:35, 5F

11/11 11:45, 5年前 , 6F
你要的是c[0]的值 不是記憶體位址 不用加&
11/11 11:45, 6F

11/11 13:17, 5年前 , 7F
Endianness
11/11 13:17, 7F

11/11 17:34, 5年前 , 8F
sprintf(buf, "%x%x%x%x", c[0], c[1], c[2], c[3]);
11/11 17:34, 8F

11/11 23:19, 5年前 , 9F
謝謝教導,已解決
11/11 23:19, 9F

11/15 09:48, 5年前 , 10F
原來可以這樣做XDDD
11/15 09:48, 10F
文章代碼(AID): #1RvvVd1g (C_and_CPP)