Каков наилучший способ преобразования std::string в строку?
Простите, я начинающий программист. Я пытался использовать функцию toInt() для строки std::, но я заметил, что toInt() работает только для класса String. Итак, у меня есть значение std::string sliderValue, и я хотел преобразовать его в класс String, чтобы использовать функцию toInt (). Здесья нашел способ, который, казалось, успокоил Intellisense, vMicro и строительство. Я сделал:
String convertValue = strcpy(new char[sliderValue.length() + 1], sliderValue.c_str());
так что я мог бы сделать:
ledcWrite(ledChannel, convertValue.toInt() * (10.24));
Есть ли лучший способ сделать это, или я прав? Кроме того, я хотел бы получить представление о том, что я делаю, если это возможно. Спасибо, ребята!
P.S. Я посмотрел это здесь, в arduino stackexchange, и, похоже, это не дало решения, специфичного для моего вопроса.
@Enna, 👍1
Обсуждение1 ответ
Лучший ответ:
Нет абсолютно никакой необходимости использовать строку
(вообще ни для чего...). Вместо этого вы можете (если у вас есть) использовать std::stoi()
или использовать strtol()
для c_str
строки.
ledcWrite(ledChannel, std::stoi(sliderValue) * (10.24));
Или
ledcWrite(ledChannel, strtol(sliderValue.c_str(), NULL, 10) * (10.24));
Первое все равно просто превращается во второе.
- Создание форматированной строки (включая числа с плавающей запятой) в Arduino-совместимом C++
- Arduino Преобразование std:string в String
- Как преобразовать форматированный оператор print в строковую переменную?
- Преобразование строки в IP-адрес
- esp32 Stack canary watchpoint срабатывает
- Почему функция server.on() из "ESPAsyncWebServer.h" выполняется на стороне setup(), а не на стороне loop()?
- Использование StringStream в скетче Arduino
- Чтение строки, разделенной запятыми
Если у вас есть " std::строка
, скорее всего, у вас также есть [
std::stoi`](https://en.cppreference.com/w/cpp/string/basic_string/stol), @Mat