Строки в C++ всегда были одним из не самых простых вопросов и почти каждый «диалект» этого языка программирования решает его по-разному. Свой вариант решения есть и у Arduino.
В Arduino поддерживается строковый тип данных в виде объекта String. Но, в некоторых случаях (например, при передаче данных через последовательный порт) всё же необходимо прибегать к «штатному» способу работы со строками в C++ в виде массива символов.
Для того, чтобы преобразовать строку в массив символов в Arduino нужно воспользоваться методом toCharArray объекта String, который принимает два параметра. Первый – выходной массив символов с числом элементов соответствующем длине строки плюс один символ (его необходимо создать заранее). Второй – длина строки.
Сам процесс преобразования показан ниже. Он очень прост и, если не считать объявления исходной строки, включает всего две строки кода.
String str = "Test"; char arr[str.length()+1]; str.toCharArray(arr, str.length()+1);
После вызова метода toCharArray у исходной строки массив arr будет заполнен символами, из которых она состоит. Далее указанный массив можно использовать в соответствии с его назначением в вашей программе.