в теме по ссылке Реализация функции atoi
для меня кое что неясно: зачем от текущей ячейки s[i]
отнимать символ '0'
? И можно ли фильтр содержимого сделать как нибудь иначе?
n = (n * 10) + (s[i] - '0');
Если n*10
необходимо для формирования разрядности числа (я ведь прав?), то с этим действием (s[i] - '0'
) не всё ясно. Пожалуйста вкратце объясните.
Потому что код символа '0'
не равен 0.
И чтобы получить численное значение из символа '0'
- вычитаем этот '0'
. А поскольку символы 0-9 идут подряд, вычитание '0'
из символа десятичной цифры дает ее значение.
Виртуальный выделенный сервер (VDS) становится отличным выбором
c++ how to get multiset which is the difference of two others multisets?
Какие нужно сделать условия, чтобы в виджете QLineEdit при написании текста, а затем при нажатии на кнопку принятия ("ОК"), были подходящими только...
Писала программу для сложения/ вычитания/умножения матриц в которые надо было посылать разные типыДля int все работало float, но надо было ее добавить...