Разделить сообщение на мелкие с сохранением разделителя

Есть код к примеру:

char str[] = "%fds%f%dssa%sss";
char* tokenStr = strtok(buffer, "%");
while (tokenStr != NULL)
{
    tokenStr = ...//сохранение в другую переменную или какие-то действия
    tokenStr = strtok(NULL, "%");
}

вывод:

fds
f
dssa
sss

но необходимо сохранить % в сообщении. Ожидаемый вывод:

%fds
%f
%dssa
%sss

Вопрос заключается в том, что я не могу использовать пространство имен std и стандартные библиотеки типа string и вектор. Ограничения связаны с тем, что пишу программу для контроллера Pixhawk, и там нет реализации стандартных бибилиотек. https://ardupilot.org/dev/docs/style-guide.html#no-standard-library. Одна из идей при сохранении tokenStrв другую переменную на позицию [0] помещать желаемый %, но мне кажется не очень здравой идеей.


Ответы (0 шт):