Проблема выяснения целочисленной функции разбора - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть эта функция, которую мой друг сделал для нашего проекта:

int parseInt(char c) {
    return c - '0';
}

Мой друг сказал, что он превращает символы в целые числа.

Пользователь вводит строку со словами и числами,и мы должны использовать числа в массиве позже, поэтому нам нужно превратить их в целые числа.

Но у меня возникают проблемы с пониманием того бита функции и того, как он на самом деле работает.

1 Ответ

0 голосов
/ 21 декабря 2018

Эта функция принимает символ, соответствующий одной из цифр от '0' до '9'.Стандарт C предписывает, чтобы коды символов для этих цифр имели последовательные значения.

Таким образом, когда '0', то есть код символа для 0 вычитается из заданного кода символа, вы получите значение от 0 до 9.

Например, в ASCIIкоды от '0' до '9': 48, 49, 50, 51, 52, 53, 54, 55, 56, 57. Поэтому, если вы передадите '4' этой функции, она выполнит '4' - '0', чтотакой же как 52 - 48, что равно 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...