Sämtliche Zeichen eines Arrays um eine Stelle verschieben

Chris72622:
Spricht was gegen diese Lösung (Textsendefenster muss CR mitschicken):
...
x=Serial.findUntil("Z 3 0 1","\r");

???

Gestern noch schriebst Du was davon, dass 100 ms delay für Dein Programm nicht OK sind:

"Da ich ohne delay() arbeiten möchte, da ich noch anderen Code abzuarbeiten habe"
Und heute möchtest Du eine Funktion aufrufen, die sämliche Codeverarbeitung bis ins unendliche blockieren kann, jedenfalls so lange bis entweder der Suchstring oder der terminierende String gefunden wird?

Kapiere ich nicht.

Das mußt Du doch selber wissen, wie lange Dein Programm maximal zwischendurch warten darf bis wieder Code ausgeführt wird. Entweder gar nicht, dann mußt Du Dir noch was einfallen lassen. Oder 100 ms (wobei das ggf. auch herabgesetzt werden kann) mit der von mir geposteten Lösung. Oder bis zu unendlich lange bis entweder der gesuchte String oder ein Zeilenende von der seriellen Schnittstelle reinkommt mit "findUntil".

Chris72622:
Wunder mich, warum es keine Bufferprobleme zu geben scheint. Ist der Arduino-Eingangsbuffer somit ein Ringbuffer und überschreibt automatisch die letzten Zeichen?

Solange in den seriellen Eingangspuffer nicht mehr Zeichen reingeschrieben werden als es der Puffergröße entspricht, ohne zwischendurch Zeichen wieder auszulesen, wird gar nichts überschrieben, sondern nur zwischengepuffert.