我有一个十六进制的NSString数组,以及从中创建一个char数组的内容。我不确定如何做到这一点。
所以我有一个数组
NSArray *myArray = [NSArray arrayWithObjects:@"0xAA", @"0xBB", @"0xCC", nil];
从这里我想创建一个c char数组,类似于这个
const unsigned char testing[] = { 0xAA, 0xBB, 0xCC };
任何建议都将不胜感激
由于
答案 0 :(得分:3)
使用char测试[]你定义了一个char数组。所以只需将一个字符串解析为该数组。你必须定义
const unsigned char testing[][];
并在循环中用它填充:
NSString *s = @"Some string";
const char *c = [s UTF8String];
答案 1 :(得分:3)
您可以采用NSScaner方法:
NSArray *myArray =
[NSArray arrayWithObjects:@"0xAA", @"0xBB", @"0xCC", nil];
int size = [myArray count];
unsigned char testing[size];
unsigned holder;
for (int i = 0; i < size; ++i) {
[[NSScanner scannerWithString:[myArray objectAtIndex:i]]
scanHexInt:&holder];
testing[i] = holder; /* or check for errors before assigning */
}
或C方法:
for (int i = 0; i < size; ++i) {
sscanf([[myArray objectAtIndex:i] UTF8String], "%x", &holder);
testing[i] = holder; /* same thing */
}