2014-04-07 219 views
0

得到的數據我有如下代碼:從十六進制字符

NSString* str = @"π"; 
const char* chr = [str UTF8String]; 

爲CHR的值是「\ XCF \ X80」,這是十六進制包機的序列。 要寫成RTF文件,我需要從該十六進制字符中提取不包含「\ x」的值。

我應該怎麼做才能獲取數據?

問候

回答

0

在C的char類型爲一個整數類型,以便可以產生就像您的任何其它的整數值的字符的十六進制表示 - 利用%x格式說明。要將完整的C字符串轉換爲十六進制的字符串,只需遍歷字符串並生成結果即可。粗碼,直接輸入回答如此預期的錯誤:

NSString *str = ... 
const char *cStr = [str UTF8String]; 
NSMutableString *hexStr = [NSMutableString new]; // for result 
while(*cStr) // loop while cStr is not pointing at a null char 
{ 
    [hexStr appendFormat:@"%02x", *cStr++]; // %02x - zero fill, width 2, hex 
} 
相關問題