所以說我有:在C中,如何將char []打印爲轉義十六進制?
char [] = "cat"
我想打印在逃脫六角所以它看起來像:
"\x63\x61\x74"
有沒有辦法做到這一點不解析/構造一個新char[]
與轉義十六進制?
所以說我有:在C中,如何將char []打印爲轉義十六進制?
char [] = "cat"
我想打印在逃脫六角所以它看起來像:
"\x63\x61\x74"
有沒有辦法做到這一點不解析/構造一個新char[]
與轉義十六進制?
您可以通過在你的printf
格式字符串中使用x
做到這一點:
for(i = 0; i < n; i++) {
printf("\\x%02x", (unsigned char)str[i]);
}
你並不需要建立一個新的char[]
,與printf
循環會做:
char c[] = "cat";
size_t len = strlen(c);
for (size_t i = 0 ; i != len ; i++) {
printf("\\x%02x", (unsigned char)c[i]);
}
而不是使用幻數,將檢查'\ 0'。畢竟,這是一個C字符串。 – Olaf
@ M.M固定。謝謝! – dasblinkenlight
請參閱[這個答案](http://stackoverflow.com/a/16519793/4520911)這裏...在另一個說明:_「有沒有辦法做到這一點那麼用這個轉義的十六進制解析/構造一個新的'char []'?「嗯......解析基本上意味着將某些東西分解成小塊/分析它。你如何期望在沒有「解析」每個特定字符的情況下打印出來? – iRove