Arduino Как разобрать String пословно, а не посимвольно?

Для разбора строки 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(). Вы можете доработать код по своему усмотрению, добавить проверки и обработку исключительных ситуаций.