Как преобразовать строку в INT с различными базами?

Я хочу конвертировать string в int но при конвертации нужно учитывать префиксы 0x или же 0 если таковые имеются и рассмотреть вход как hex или же oct соответственно. С помощью istringstreamнужно явно указать базу. Есть ли способ, кроме как явно кодировать, чтобы проверить символы 0x?

Редактировать:
Преобразование должно неявно находить базу на основе префикса. Как int i = 0x123; делает.

3

Решение

Вы можете использовать СТД :: стои семейство функций из C ++ 11.

7

Другие решения

Вы можете использовать функцию C strtol : http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/
Он понимает предпочтения 0x / 0.

2