Question: ajout d'une char a un string

Salut,

Pour mon projet je dois pouvoir envoier un packet UDP a mon arduino.
Dans ce packet ce trouve un string (ex: "hello arduino!"), mais pour pouvoir l'afficher dans ma console, je dois utiliser le code suivant:

for(int i=0; i < UDP_TX_PACKET_MAX_SIZE; i++) {
       Serial.print(char(packetBuffer[i]));  
}

Ma question est:

Est-il possible de créer un string et d'y rajouté des chars, comme:

string stringMessage = "";
for(int i=0; i < UDP_TX_PACKET_MAX_SIZE; i++) {
       Serial.print(char(packetBuffer[i]));
       stringMessage  += char(packetBuffer[i]);
}

Merci d'avance,

En principe oui.

Sinon il existe les bonnes et vieilles fonctions string du C classique.

strcat, strcpy, ...

Dois-je utiliser la méthode suivante?

char *s = "string";
char c = 'X';
 *s = append(s, c);

Toutes les méthodes se valent... (append je ne l'utilise pas).

Sinon, quelle est la strcuture de la tramme udp ? s'il n'y a que des caractères affichables alors il ne faut pas se prendre la tête.

Serial.println((char *)packetBuffer);

Et si cela ne fonctionne pas :

Serial.println((char *) &packetBuffer[0]);

Sinon pour construire une chaine de caractères plusieurs méthodes :

char s[UDP_TX_PACKET_MAX_SIZE];

strcpy(s,""); // chaine vide

for (int i=0; i<UDP_TX_PACKET_MAX_SIZE; i++)
s_=(char)packetBuffer*;_
ou encore :
_ strcat(s, (char)packetBuffer);*
etc...
Tout est valable.
La chose importante et qu'il faut que la taille de la chaine soit suffisante pour y stocker les caractères sinon il va y avoir des effets de bords imprévisible.
Quand on écrit : char *s="string"; il n'y a que 7 caractères de réservés. Le 8eme fait parti d'une autre variable.
si on écrit :
*char s[256]; *
on est certain d'avoir de la place pour 256 caractères._

Essaie la librairie String : String() - Arduino Reference

attention au udp max char, il est defini comme une chaine de 24 carcateres dans son header