我想將一個數組轉換爲十六進制,然後將其放入一個字符串變量。在下面的循環中,printf工作正常,但我無法正確使用sprintf。我如何將十六進制值填充到ASCII數組中?使用'sprintf'將十六進制轉換爲字符串
static unsigned char digest[16];
static unsigned char hex_tmp[16];
for (i = 0; i < 16; i++) {
printf("%02x",digest[i]); <--- WORKS
sprintf(&hex_tmp[i], "%02x", digest[i]); <--- DOES NOT WORK!
}
「不工作」是一個很糟糕的錯誤描述。它會崩潰嗎?它會給編譯錯誤嗎?它是否給出了錯誤但意想不到的結果?什麼意外的結果?你會期望什麼呢? – sth 2011-01-22 21:28:02
你的問題的部分答案在這裏:什麼是(16 * 2)+ 1?你的循環從0運行到??。那有多少次迭代? – JimR 2011-01-22 21:46:10