Конвертация String to uint32_t - прошу помощи

Dinosaur
Dinosaur аватар
Offline
Зарегистрирован: 01.01.2018

Добрый день, камрады. Прошу помощи, уже весь мозг сломал. Суть проблемы:

Обрабатываю POST отправку от web страницы следующего вида: color: #FFFFFF

Нужно сохранить значение RGB цвета (максимальное значение FFFFFF) в переменную uint32_t. Бьюсь целый день, а идей ноль. Все до чего дошел, убрать первый символ #:

  String str = "#FFFFFF";
  String substr = str.substring(1); // убираем первый символ #

Сейчас переменная String равна FFFFFF и ноль идей что делать с ней дальше. Т.е. умом понимаю что сперва нужно ее сконвертировать в HEX, затем сохранить этот HEX в переменную, но как - ума не приложу. Подскажите?

Dinosaur
Dinosaur аватар
Offline
Зарегистрирован: 01.01.2018

Ну и отвечу сам себе:

  String str = "#FFFFFF";
  str[0] = 32;
  uint32_t num = strtol(str.c_str(),NULL,16);
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Dinosaur пишет:

Ну и отвечу сам себе:

  String str = "#FFFFFF";
  str[0] = 32;
  uint32_t num = strtol(str.c_str(),NULL,16);

Неправильно ответил.

Dinosaur
Dinosaur аватар
Offline
Зарегистрирован: 01.01.2018

Почему? Результат в сериале тот, что ожидаю увидеть, чего я (пока) не вижу?

sadman41
Offline
Зарегистрирован: 19.10.2016

strto_u_l()

Dinosaur
Dinosaur аватар
Offline
Зарегистрирован: 01.01.2018

sadman41 пишет:
strto_u_l()

Спасибо, вы совершено правы. Из за небольших чисел на переполнение и не нарвался.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Тут уже без меня ответили :-)