Преобразование строки в целое число
Я использую два ESp32 в конфигурации сервера и клиента, и я посылаю данные между ними в виде строк, но я хочу преобразовать полученные данные, которые являются fom строк, но они содержат числа в int, на котором я могу работать, чтобы вычислить необходимые вещи для моего проекта. Может ли кто-нибудь помочь мне в том, как преобразовать строку в целое число?
@rohithrathod banoth, 👍-1
Обсуждение2 ответа
▲ 0
На этот вопрос уже много раз давался ответ, но вы можете преобразовать строку в Целое число либо путем преобразования ее в массив char
, либо с помощью функции atoi ()
:
char strVal[10];
str.toCharArray(strVal, 10);
int val = atoi(strVal);
или просто с помощью функции toInt
:
int val = str.toInt();
Источник: Arduino Forum
ОТРЕДАКТИРОВАНО:
Попробуйте использовать второе решение, так как функция atoi()
возвращает 0
при ошибке, что может ввести в заблуждение.
,
@Python Schlange
Смотрите также:
- Как преобразовать строку в массив байтов
- Создание форматированной строки (включая числа с плавающей запятой) в Arduino-совместимом C++
- Проблемы с преобразованием byte[] в String
- Arduino Преобразование std:string в String
- Преобразование строки в IP-адрес
- Использование StringStream в скетче Arduino
- Чтение строки, разделенной запятыми
- Какова цель F() и FPSTR() в ESP8266WebServer -> FSBrowser?
Строка
или " символ*"...?, @MajenkoВы пробовали это погуглить? Я очень уверен, что это объяснялось много раз по всему Интернету, @chrisl
Я не знаю, почему на "atoi" нет предупреждения об осуждении; пожалуйста, не используйте "atoi". Если вы думаете, что тянетесь к этому, используйте вместо этого " strtol`. В отличие от "atoi", "strtol" имеет *определенное* поведение при переполнении/недостаточном потоке и может сообщить, что он не удался и как, и при необходимости может сообщить вам, где закончился lex., @timemage