запись string в array
- Войдите на сайт для отправки комментариев
Чт, 05/10/2017 - 08:32
как написать функцию которая из dataFromPort будет помещать цифры в массив int array[0]= 1 элементу dataFromPort
array[1]= 2му и т.д
____
Грубо говоря если у нас dataFromPort =1213455 то array[]={1,2,3,4,5,5};
String dataFromPort;
void doParse()
{
if(!dataFromPort.length())
return;
// тут разбираете строку, как вам надо
int idx = dataFromPort.indexOf(' ');
if(idx > -1)
{
String command = dataFromPort.substring(0,idx);
dataFromPort = dataFromPort.substring(idx+1);
if(command == "LED")
{
// тут парсим остаток строки
idx = dataFromPort.indexOf(' ');
if(idx > -1)
{
int ledIndex = dataFromPort.substring(0,idx).toInt();
dataFromPort = dataFromPort.substring(idx+1);
switch(ledIndex)
{
case 1:
Serial.println(ledIndex);
Serial.println(dataFromPort);
break;
case 2:
Serial.println(ledIndex);
Serial.println(dataFromPort);
break;
// .... и т.д.
}
}
}
}
}
как написать функцию которая из dataFromPort будет помещать цифры в массив int array[0]= 1 элементу dataFromPort
array[1]= 2му и т.д
____
Грубо говоря если у нас dataFromPort =1213455 то array[]={1,2,3,4,5,5};
В строке нет ничего, кроме цифр?
ну, так преобразуйте её в массив методом toCharArray(), а потом из каждого элемента массива вычтете '0'.
не понял
Вообще к строке можно обращается, как к массиву символов, по индексу. Ну а тогда преобразовываем символ в нужный нам вид и запиховываем в массив, в цикле. Примерно так.
void setup() { Serial.begin(9600); } void loop() { String str = "1213455"; int array[str.length()]; for (int i = 0; i < str.length(); i++) { array[i] = int(str[i]) - 48; Serial.println(array[i]); } }Наверняка можно сделать и попроще.