Преобразование строки NSString в массив Char - PullRequest
1 голос
/ 08 февраля 2012

У меня есть массив, полный NSString в шестнадцатеричном виде и что для создания массива из них.Я не уверен, как это можно сделать.

Итак, у меня есть массив

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

, из которого я хочу создать массив ac char, что-то похожее на это

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

Буду признателен за любой совет

Спасибо

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Вы можете использовать подход 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 */
}
3 голосов
/ 08 февраля 2012

при использовании char test [] вы определили массив char. Таким образом, в этот массив можно разобрать только строку Вы должны определить

const unsigned char testing[][];

и в цикле заполните его:

NSString *s = @"Some string";
const char *c = [s UTF8String];
...