Преобразовать строку типа "ff0000" в шестнадцатеричное число в цели c

Мне нужно преобразовать ввод строки из пользовательского интерфейса в шестнадцатеричное число в цели c. Строка представляет собой HTML-код цвета, такой как "ff0000" (символ "#" будет рассматриваться схематически), и предполагается, что он будет преобразован в число ff0000 для обеспечения выбора цвета. В качестве альтернативы, есть ли выбор цвета в цели c? не нашел ни одного в объектах XIB.

2 ответа

Решение

От Objective C разобрать шестнадцатеричную строку в целое

unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"ff0000"];
[scanner scanHexInt:&result];

или используя "с":

uint32_t value;
NSString *stringValue = @"ff0000";
const char *string = [stringValue cStringUsingEncoding:NSUTF8StringEncoding];
sscanf(string, "%x" , &value);

Вы можете использовать приведенную ниже строку для конвертации. Это всего лишь один строчный код:

NSString *hexString = @"01FFFFAB";
length = (UInt64)strtoull([sizeLine UTF8String], NULL, 16);
NSLog(@"The required Length is %d", length);

Удачного кодирования!!!

Другие вопросы по тегам