Каков наилучший способ преобразования 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, и, похоже, это не дало решения, специфичного для моего вопроса.

, 👍1

Обсуждение

Если у вас есть " std::строка, скорее всего, у вас также есть [std::stoi`](https://en.cppreference.com/w/cpp/string/basic_string/stol), @Mat


1 ответ


Лучший ответ:

1

Нет абсолютно никакой необходимости использовать строку (вообще ни для чего...). Вместо этого вы можете (если у вас есть) использовать std::stoi() или использовать strtol() для c_str строки.

ledcWrite(ledChannel, std::stoi(sliderValue)  * (10.24));

Или

ledcWrite(ledChannel, strtol(sliderValue.c_str(), NULL, 10)  * (10.24));

Первое все равно просто превращается во второе.

,