Преобразовать строку типа "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);
Удачного кодирования!!!