В твоём варианте надо было использовать мою первую функцию, ты просто не так её вызывал, не думал что такое может быть....
Не думал что тут могут возникнуть проблемы, это же азы...
Не знаю кто что о чём пишет, может и реализовано, тут надо идти и изучить пару пробелов в знаниях, тут нет ничего сложного, просто надо понять кто что хочет сделать. Я сам не так и давно этим занимаюсь, но в конкретно этой задачи всё просто и решение я дал уже давно.
C++:
void StrToArray(const String& str,uint8_t* outArr,int length){
String s;
s += str;
// Добавляем для упрощения алгоритма
s += ", ";
// Наполняем целевой массив с 0 по препоследний
for (int i=0;i<length-1;i++){
// Если в строке есть что запихать в массив - пихаем в массив
if (s.length()>2){
outArr[i]=(s.substring(0,s.indexOf(",")-1).toInt();
s=s.substring(s.indexOf(",")+1);
// Если в строке нет данных, а целевой массив ещё не заполнен, пихаем в него маркеры конца
} else {
outArr[i]=255;
}
}
// Вне зависимости от того, что было раньше, в последний член массива пихаем маркер конца
outArr[length-1]=255;
}
//Вызывать надо было так:
StrToArray(prd, c.periodDisplay,6); // 6 - это размер целевого массива, функция не знает какой длинны массив ты ей передаёшь
Не знаю кто что о чём пишет, может и реализовано, тут надо идти и изучить пару пробелов в знаниях, тут нет ничего сложного, просто надо понять кто что хочет сделать. Я сам не так и давно этим занимаюсь, но в конкретно этой задачи всё просто и решение я дал уже давно.
Изменено: