Преобразование строки в целое число

Я использую два ESp32 в конфигурации сервера и клиента, и я посылаю данные между ними в виде строк, но я хочу преобразовать полученные данные, которые являются fom строк, но они содержат числа в int, на котором я могу работать, чтобы вычислить необходимые вещи для моего проекта. Может ли кто-нибудь помочь мне в том, как преобразовать строку в целое число?

, 👍-1

Обсуждение

Строка или " символ*"...?, @Majenko

Вы пробовали это погуглить? Я очень уверен, что это объяснялось много раз по всему Интернету, @chrisl

Я не знаю, почему на "atoi" нет предупреждения об осуждении; пожалуйста, не используйте "atoi". Если вы думаете, что тянетесь к этому, используйте вместо этого " strtol`. В отличие от "atoi", "strtol" имеет *определенное* поведение при переполнении/недостаточном потоке и может сообщить, что он не удался и как, и при необходимости может сообщить вам, где закончился lex., @timemage


2 ответа


1

Функция библиотеки C atoi() сделает это за вас

,

0

На этот вопрос уже много раз давался ответ, но вы можете преобразовать строку в Целое число либо путем преобразования ее в массив char, либо с помощью функции atoi ():

char strVal[10];
str.toCharArray(strVal, 10);
int val = atoi(strVal);

или просто с помощью функции toInt:

int val = str.toInt();

Источник: Arduino Forum

ОТРЕДАКТИРОВАНО: Попробуйте использовать второе решение, так как функция atoi() возвращает 0 при ошибке, что может ввести в заблуждение.

,