从十六进制字符获取数据

时间:2014-04-07 14:36:47

标签: c++ cocoa rtf

我的代码如下:

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

chr的值是“\ xcf \ x80”,它是十六进制包的序列。 要写为RTF文件,我需要从这个十六进制字符中提取除“\ x”之外的值。

我该如何获取数据?

此致

1 个答案:

答案 0 :(得分: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
}