Я хотел бы извлечь произвольную часть всей строки и опубликовать ее с помощью Serial.println().
Исходная проблема, с которой я сталкиваюсь, заключается в том, что строковые значения (A, B, C) являются переменными и, следовательно, "неизвестны". Он путается с определенными терминаторами "-" и "END $". Я не могу найти подходящие точки привязки для получения именно той части строки, которую я хочу. Могу, если этих строковых значений нет: "curD = 'Data: String1 A'" vs. "curD = 'String1'". Я хотел бы иметь только "String1 A", "String2 B" или "String3 C".
Примеры A, B, C представляют собой либо целое число, число с плавающей запятой, либо строку переменной/случайной длины.
Это то, что у меня есть до сих пор:
char headComputerData[] = "String1 - "; // test; can be String1 -, String2 - etc, to get the next adjacent string sequence till " -"
//char headComputerData[] = "Computer Data: "; // the prefix of the data value
char dashTerminator[] = " -"; // one possible suffix of a value
char dollarTerminator[] = " END $ "; // the other possible suffix of a value
int firstIndexComputerData; // index into inputStringPC of the first char of the value
String inputStringPC = "Computer Data: String1 A - String2 B - String3 C END $ ";
firstIndexComputerData = inputStringPC.indexOf(headComputerData);
firstIndexComputerData += strlen(headComputerData); // firstIndex is now the index of the char just past the head.
String compData = inputStringPC.substring// string everything between
(
firstIndexComputerData, //first index
inputStringPC.indexOf(dashTerminator, firstIndexComputerData) //last index (relative)
);
Serial.println(compData);
Спасибо :)
без ограничений
Serial.println()
не место. Просто разберитесь с проблемой. - person Ted Lyngmo   schedule 26.03.2020