leo72:
Quindi hai risolto?
mh no, cioè sembra che vada solo nella funzione e non nel loop, forse dovrei usare puntatori a char..
guarda posto un esempio di codice sotto, così si capisce tutto meglio..
#define LCD_COLONNE 16
char* array[2][21] = {"stringa1", "stringa2", "stringa3", "stringa3"};
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print("NEL LOOP: ");
Serial.println( printMenuItem(0,0) );
delay(2000);
}
char *printMenuItem(byte id_lingua, byte id_stringa)
{
char *stringa = array[id_lingua][id_stringa];
int lenght = strlen(stringa);
byte spaces = (((LCD_COLONNE - 2) - lenght) / 2);
char spaces_string[14];
char spazio = 's';
for(int x=0; x<spaces; x++)
{
spaces_string[x] = spazio;
}
spaces_string[spaces] = '\0';
strcat(spaces_string,stringa);
Serial.print("Nella funzione: ");
Serial.println(spaces_string);
delay(2000);
return spaces_string;
}