@Anvario0

Что означает -'0' на C?

Фрагмент кода:

for (int i = 0; i < strlen(str); ++i) {
        if (isnumber(str[i])) {
            int j = i;
            while (isnumber(str[j])) {
                if (maxnumber < str[j] - '0') {
                    maxnumber = str[j] - '0';
                }
                ++j;
            }
            for (; i < j; ++i) {
                number += pow(maxnumber + 1, j - i - 1) * (str[i] - '0');
            }


Я никак не пойму, что означает - '0'. Можете, пожалуйста, подробно расписать, в чём функция этой записи?
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 3
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Это вычитание значения '0' из значения str[j]. И то и другое - символы, они же char. В языке Cи, это целочисленный тип. Просто каждому символу дается его ascii код.

Тут это используется для получения численнного значения цифры из ее символьного значения, ведь символы '0'-'9' в ascii идут подряд в натуральном порядке.
Ответ написан
Комментировать
gd1xza
@gd1xza
-'0' используют в си чтобы преобразовать число записаное строкой ascii в число
Ответ написан
Комментировать
CityCat4
@CityCat4
Жил-был у бабушки серенький троллик...
Это символьная константа - текстовый символ цифры "ноль". Компилятор сам переведет в число, а записывать так проще и быстрее - я вот не помню код цифры "ноль".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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