2015-06-29 53 views
0

我有一個程序需要一個字符串,將其分解爲空白區域,然後分析字符串的每個部分。獲取十六進制格式的轉義字符C

當我遇到一個轉義字符,如單引號:\',我想打印出它的十六進制格式:0x27。

我試圖查找如何做到這一點,但沒有發現任何有用的東西。有沒有辦法訪問轉義字符的十六進制代碼,還是我必須在打印語句中手動打印出十六進制代碼?

+3

但是,單引號*不是*真正的轉義字符。我可以理解,如果你想打印不可打印的字符使用十六進制,但一個完全安全和可打印的單引號?如果在一個字符文字中(爲了區分它與字符文字的開始和結束單引號),則只需要轉義單引號,否則就不會。我並不是說你的問題是錯誤的,但你選擇的例子可能更好。 –

回答

3

如果你的字符串的一部分是一個字符,像你說的,你可以打印喜歡:

char = '\''; 
printf("caracter: %x", c); 

字符僅僅是一個1個字節的int。在​​輸出,在一定的格式INT,諸如基於ASCII"%c")字符或作爲一個正常數("%d")或作爲其值("%x")的十六進制表示的說明符。

+1

,如果你需要它作爲0x27,那麼「0x%x」 – amdixon

+2

@amdixon:最好使用'%#x'。 –

+1

@PaulR正確,更簡潔 – amdixon

相關問題