1
我正在努力獲得一個字符串,在處理過程中被理解爲一個十六進制字符串。我正在寫一個小程序,我在這裏輸入ascii文本作爲十六進制字符串。將十六進制字符串數組轉換爲十六進制數組
即我讀:
char *str = "313233";
這實際上是0X31,0x32和0x33這實際上是字符串 「123」。
我需要一個無符號的字符陣列如下:
unsigned char val[] = {0x31, 0x32, 0x33};
當我試圖sscanf的或sprintf的,他們期望整數數組是目標指針:(
也就是說,是這樣的:
sprintf(str, "%2x", &val[0]);
如何做到這一點?也許這是很瑣碎,但不知何故,我很困惑。
謝謝。
'0x31'不是十六進制'31' –
有計算器上類似的問題至極我的幫助:http://stackoverflow.com/questions/3408706/hex-string-to-byte-array-in-c – nabuchodonossor
@DavidRF true,但在我的情況下,我得到一個字符串的十六進制輸入,因此我知道該字符串是一個十六進制字符串:) – user900785