将NSString转换为Char数组

时间:2012-02-08 14:01:25

标签: objective-c c ios nsarray hex

我有一个十六进制的NSString数组,以及从中创建一个char数组的内容。我不确定如何做到这一点。

所以我有一个数组

NSArray *myArray = [NSArray arrayWithObjects:@"0xAA", @"0xBB", @"0xCC", nil];

从这里我想创建一个c char数组,类似于这个

const unsigned char testing[] = { 0xAA, 0xBB, 0xCC };

任何建议都将不胜感激

由于

2 个答案:

答案 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 */
}