Преобразование строки NSString в массив Char

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

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

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

Исходя из этого, я хочу создать массив AC Char, что-то похожее на это

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

Любой совет будет принят во внимание

Спасибо

2 ответа

Решение

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

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

const unsigned char testing[][];

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

NSString *s = @"Some string";
const char *c = [s UTF8String];
Другие вопросы по тегам