Для разбора строки String по словам, а не посимвольно, в Arduino можно использовать функцию strtok(). Функция strtok() разбивает строку на "токены" или слова, используя заданный разделитель.
Вот пример кода, который демонстрирует разбор строки на слова с использованием функции strtok():
void setup() { Serial.begin(9600); // Инициализация сериального порта } void loop() { String inputString = "Пример строки для разбора"; // Приведение строки к массиву символов char charArray[inputString.length() + 1]; inputString.toCharArray(charArray, sizeof(charArray)); // Разделитель слов const char delim[] = " "; // Получение первого слова char *token = strtok(charArray, delim); // Пока есть следующее слово while (token != NULL) { // Вывод слова в сериальный порт Serial.println(token); // Переход к следующему слову token = strtok(NULL, delim); } delay(1000); }
В этом примере мы создаем строку inputString, которую хотим разобрать на слова. Затем мы приводим строку к массиву символов charArray. Задаем разделитель delim как пробел.
Затем мы используем функцию strtok() для разбиения строки на токены (слова). Первый вызов функции strtok() с аргументом charArray возвращает указатель на первое слово, а последующие вызовы с NULL в качестве аргумента продолжают разбивать оставшуюся часть строки на слова.
Каждое слово выводится в сериальный порт с помощью функции Serial.println(). Вы можете изменить вывод так, чтобы использовать его в своих целях.
Это простой пример разбора строки на слова в Arduino с использованием функции strtok(). Вы можете доработать код по своему усмотрению, добавить проверки и обработку исключительных ситуаций.