Как разбить строку на слова в Arduino? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть строка в arduino

String name="apple orange banana";

Можно ли сохранить каждый элемент в массиве arr

, чтобы

arr[0]="apple" 
arr[1]="orange" ......etc

, если нетсохранить их в отдельных переменных?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Как разбить строку, используя определенный разделитель в Arduino? Я полагаю, это поможет вам, вы можете сделать цикл while, например:

int x;
String words[3];
while(getValue(name, ' ', x) != NULL){
     words[x] = getValue(name, ' ', x);
}

Используя эту функцию:

// /7198285/razdelit-stroku-na-massiv-strok
String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length()-1;

  for(int i=0; i<=maxIndex && found<=index; i++){
    if(data.charAt(i)==separator || i==maxIndex){
        found++;
        strIndex[0] = strIndex[1]+1;
        strIndex[1] = (i == maxIndex) ? i+1 : i;
    }
  }
  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
0 голосов
/ 06 июня 2018

Если вам известна длина вашего списка и максимальное количество символов в элементе списка, вы можете

char arr[3][6] = {"apple", "orange", banana"};

изменить: если вы ищете что-то вроде String arr[3], вы не получите его, потому чтоо том, как память управляется с помощью языка C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...