Вы можете достичь этого следующим образом:
int x = 10*(st[0]-'0') + (st[1]-'0');
Это работает, потому что вычитание '0'
из char
, представляющего число, приводит к тому фактическому числу. Например, '5' - '0' == 5
.
char ch, так что ch = 12
Это невозможно, хотя. Вы можете сделать char ch = 12
, но это не будет представлять 12
, что, скорее всего, просто приведет к тому, что может быть не для печати. В ASCII это будет «подача формы», и если вы попытаетесь распечатать это, возможно, можно будет вставить новую строку (или перейти к следующей странице, если ваш редактор поддерживает это). Если вы хотите, чтобы строка содержала "12"
, вы можете сделать это следующим образом:
std::string twelve = st.substr(0, 2);
И оттуда общий способ преобразования в int
будет
int x = std::stoi(twelve);