Цифра в число в C++
Символ '7' - не число 7. В арифметике
char превращается в int, и плюс
складывает коды, а не «цифры как текст»:
char ch1 = '1';
char ch2 = '2';
std::cout << ch1 + ch2 << "\n"; // выведет 99
Число, которое обозначает цифра, получают вычитанием
кода '0'. Для '7' это 7:
char ch = '7';
int num = ch - '0';
std::cout << num << "\n"; // выведет 7
Сложим два таких числа:
char ch1 = '1';
char ch2 = '2';
int num1 = ch1 - '0';
int num2 = ch2 - '0';
std::cout << num1 + num2 << "\n"; // выведет 3
Буква цифрой не является. Вычитание кода
'0' все равно выполняется и дает число,
только это уже не цифра:
char ch = 'a';
std::cout << ch - '0' << "\n"; // выведет 49
Даны два символа:
char ch1 = '4';
char ch2 = '5';
Найдите сумму чисел, которые обозначают эти цифры, и выведите ее.
Дан символ:
char ch = '7';
Найдите число, которое обозначает эта цифра, и выведите его.
Дан символ:
char ch = '8';
Найдите число, которое обозначает эта цифра,
и выведите его произведение на 2.
Дан следующий код:
char ch1 = '1';
char ch2 = '2';
std::cout << (ch1 + ch2) - '0' << "\n";
Программа запускается, но результат неверный. Найдите ошибку в рассуждении.