我的代码如下:
NSString* str = @"π";
const char* chr = [str UTF8String];
chr的值是“\ xcf \ x80”,它是十六进制包的序列。 要写为RTF文件,我需要从这个十六进制字符中提取除“\ x”之外的值。
我该如何获取数据?
此致
答案 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
}