Stockage de donnée pendant la lecture

Bonjour,

je reçois un trame de caractère sur le port série de mon arduino, et dans le cadre d'un projet je dois stocker certaines chaines de caractère dans des String. Voici un exemple de trame :

abcde bateau fghijk
abcde avion fghijk
abcde voiture fghijk
abcde moto fghijk
.
.
.

Ce que je cherche à faire c'est stocker les mots entre " " (espace) dans des String, au final j'aimerais avoir :

String mot1 = "bateau"
String mot2 = "avion"
String mot3 = "voiture"
String mot4 = "moto"
.
.
.
String motn = "..."

Ce qui est bien c'est que ces mots que je veux stocker, sont entourés par des espaces, donc j'arrive à les identifier mais je ne vois pas comment je peux les stocker dans des variables de type String "à la volée" et tout en passant le moins possible par des tableaux...

Si vous avez des idées je suis preneur.

J'espère que tout est clair, merci d'avance.

Une piste, une fois l'entête trouvée utiliser readStringUntil()

L'usage de findUntil() permet de rechercher l'entête du message. Et c'est quand même plus élégant et plus sûr que de guetter le premier espace.

L'usage de la classe String est déconseillé avec les petits microcontrôleurs car la mémoire se trouve morcelée et cela entraîne des plantages.
L'utilisation de tableau (pour autant qu'ils soient bien dimensionnés) ne posera pas de problème.

Dans la class String, vous avez les fonctions indexOf et substring qui vous permettrons d'extraire les mots.

Vous rechercher le premier espace et vous recommencer la même chose en changeant la position de départ (from), celui précédemment trouvé et ainsi de suite. Et avec les différents index, vous pouvez extraire les mots avec la fonction string.

La doc: