в теме по ссылке Реализация функции atoi
для меня кое что неясно: зачем от текущей ячейки s[i] отнимать символ '0'? И можно ли фильтр содержимого сделать как нибудь иначе?
n = (n * 10) + (s[i] - '0');
Если n*10 необходимо для формирования разрядности числа (я ведь прав?), то с этим действием (s[i] - '0') не всё ясно. Пожалуйста вкратце объясните.
Потому что код символа '0' не равен 0.
И чтобы получить численное значение из символа '0' - вычитаем этот '0'. А поскольку символы 0-9 идут подряд, вычитание '0' из символа десятичной цифры дает ее значение.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости