Проблема преобразования строки в уравнение

Мой проект заключается в создании десятичного сумматора с помощью распознавания голоса. Это как калькулятор, который выполняет только сложение. Я использую модуль Bluetooth hc-06 для преобразования своего голоса в строку. Например, я говорю «21+22», и ЖК-дисплей выводит «21 + 22 = 43». У меня нет проблем с отображением моего голосового сообщения на ЖК-дисплее. Моя проблема в том, что строка не может вычислить уравнение. Я использовал toInt(), но он распознает только первое целое число. Есть ли код для распознавания строки и преобразования числовых значений в целое число, разделенное знаком +, а затем для его вычисления путем сложения двух целых чисел?

, 👍0


2 ответа


2

В языке C нет единой функции для выполнения вычислений из строки, как вам нужно.

Вместо этого вам придется проанализировать и разбить строку на части, преобразовать два числа в целые числа (возможно, подтвердив, что между ними есть знак +) и выполнить вычисления для этих двух отдельных целых чисел.

,

2

Стандартная библиотека ввода-вывода (sscanf) может вам в этом помочь:

String s = "21+22";
int x;
int y;
int items = sscanf(s.c_str(), "%d+%d", &x, &y);
if (items != 2) /* обработка ошибок */
int z = x + y;

Ура!

,