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

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

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

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