Преобразование строки 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];