Преобразование строки в целое число
Я использую два 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