@IliaNeverov

Как сделать вектор char беззнаковым числом?

Как сделать вектор беззнаковым числом? std::atoi , std::stoi не работают
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Похоже практически все встроенные функции ожидают '\0' на конце входного буфера, что не ваш случай.

Единственное исключение, которое я нашел - std::from_chars. Только оно далеко не везде доступно и надо подключать charconv.

Еще можно руками, если точно известно, что никаких ошибок в числе нет:
unsigned int vtoi(const std::vector<char> &a) {
  unsigned int res = 0;
  for (const auto& c: a) {
    res = 10*res + static_cast<unsigned int>(c) - static_cast<unsigned int>('0');
  }
  return res;
}


Проверки на переполнение и левые символы добавьте сами, если надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы