Выдернуть число из строки и сложить с другим

Ezheka
Offline
Зарегистрирован: 09.03.2018
Не могу сложить 2 числа: 
первое беру из массива строк 
char keys[10] = "1234567890";
char keyNum=3;
char currentKey=keys[keyNum];//первое число
//второе путем преобразования int в String с последующим извлечением символов по одному:
int val=123; 
String valStr=String(val);
for (int i = 0; i < 3; i++){
 char currentNum=valStr[i];  // второе число
char newVal =currentKey+currentNum; // то что нужно посчитать
}

 

результат проверяю через монитор порта, слагаемые показывает правильно, а итог на выходе - как сумма ASCII кодов - 101,102,103, т.е. адруинка просто сложила обозначения чисел, а не числа
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Дважды перечитал пост, и так и не увидел в нём ни вопроса, ни просьбы к сообществу. Вы просто решиили проиформировать нас, что 

Ezheka пишет:

Не могу сложить 2 числа:

???

Ну, спасибо, принято к сведению. Будем теперь знать, что если "складывать" так, то получается не сложение, а конкатенация строк.

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

Ezheka пишет:
char currentNum=valStr[i]; // второе число

Это вовсе не "число" - это и есть числовой код символа, изображающего эту цифру.

Если вам и вправду нужно число, то, например, как-то так:

int currentNum = valStr[i] - '0';
 

 

 

Ezheka
Offline
Зарегистрирован: 09.03.2018

Olej

Большое спасибо, помогло.