Проблема преобразования строки в уравнение
Мой проект заключается в создании десятичного сумматора с помощью распознавания голоса. Это как калькулятор, который выполняет только сложение. Я использую модуль Bluetooth hc-06 для преобразования своего голоса в строку. Например, я говорю «21+22», и ЖК-дисплей выводит «21 + 22 = 43». У меня нет проблем с отображением моего голосового сообщения на ЖК-дисплее. Моя проблема в том, что строка не может вычислить уравнение. Я использовал toInt(), но он распознает только первое целое число. Есть ли код для распознавания строки и преобразования числовых значений в целое число, разделенное знаком +, а затем для его вычисления путем сложения двух целых чисел?
@Kiv Ryan, 👍0
2 ответа
В языке C нет единой функции для выполнения вычислений из строки, как вам нужно.
Вместо этого вам придется проанализировать и разбить строку на части, преобразовать два числа в целые числа (возможно, подтвердив, что между ними есть знак +) и выполнить вычисления для этих двух отдельных целых чисел.
Стандартная библиотека ввода-вывода (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;
Ура!
- AT-команды не работают для HC-06 НА ARDUINO UNO
- Проблемы с использованием модуля Bluetooth HC-06 с Arduino
- Сопряжение HC-06 с ардуино
- Проблема с получением данных HC-06
- Как подключить ESP32 к HC-06?
- Bluetooth: время синхронизации с NTP-сервера через интернет-соединение, совместно используемое с телефоном Android.
- Когда контакты TX и RX для Bluetooth подключены, LCD-экран не обновляется. Почему так?
- Как подключить модуль HC-06 BT без контактов?