[Codice] inserimento variabili in puntatore char

Ragazzi domanda di programmazione:

byte variabile01, variabile02
char* mess01 = "Comune 00" + variabile01 + " Macchina " + variabile02 + " contenitore pieno";

Qualcuno sa come posso mettere delle variabili quando inizializzo un puntatore char*?
Ho fatto blandi tentativi.
Le variabili sono di tipo byte e le avevo convertite in stringhe ma così non va.

Perché in 'C' NON esiste poter sommare le stringhe !

Quella è una cosa che è possibile fare con la "classe" String (... assolutamente sconsigliata su una piccola MCU come quella di Arduino) ed in C++.

Devi pre-allocare il vettore mess01 per le sue massime dimensioni (... ricorda lo 0x00 finale nel conteggio) e quindi, comporre la tua stringa usando le funzioni che trovi nella AVR libc (... che è sempre disponibile), in <string.h> .

Guarda sia la strcpy() che la strcat() :wink:

Guglielmo

Quindi dovrei fare qualcosa del tipo:

byte variabile01
char* mess01[160];
mess01=strcat("testo", variabile01)

Il mio problema è mettere in una char* il valore di una variabile di tipo byte

Jenosky:
Il mio problema è mettere in una char* il valore di una variabile di tipo byte

Sempre in AVR libc, basta cercare :smiling_imp: , ci sono le funzioni di conversione di numerici in stringa ... es. itoa() che trovi in <stdlib.h>

Ah ... la AVR libc ... va STUDIATA tutta perché è fondamentale per lavorare in 'C' ... quindi dedicatici ... :wink:

Guglielmo

Dai anche un'occhiata all'ottima libreria PString.

Anche la snprintf() è utile, non gestisce però i float/double su Arduino.
In pratica "stampi" non a video/seriale ma "dentro" al vettore usando la pratica sintassi della printf() classica del c
Esempio:

char buf[20];
byte valore=123;
snprintf(buf,20,"Valore=%04d",valore);
Serial.println(buf);        // stampa   Valore=0123

Grazie a tutti!