TConnect:
Nur mal der Vollständigkeit halber: Wie hätte ich es denn machen müssen, wenn ich nicht snprintf() nutzen würde?
Viele Möglichkeiten zum Zusammenbasteln des Strings. Zum Beispiel:
char filename[13]="gpslg";
int number=7;
if (number<100) strcat(filename,"0");
if (number<10) strcat(filename,"0");
itoa(number,&filename[strlen(filename)],10);
strcat(filename,".log");
Serial.println(filename);
Du müßtest Dir auch mal über den Unterschied zwischen "char" und "char array" klarwerden.
Ein einzelnes Zeichen ist ein "char" und wird als Konstante zwischen EINZELNE HOCHKOMMAS gesetzt. Zum Beispiel:
char c='x';
Ein char-Array hat eine bestimmte Größe (Anzahl Zeichen plus eins extra als "Stringende-Zeichen") und wird als Konstante zwischen DOPPELTE HOCHKOMMAS gesetzt:
char filename[13]="gpslg"; // String definiert für Maximallänge 12 und abschließendes Nullzeichen
Das abschließende Nullzeichen in Stringkonstanten wird automatisch eingefügt, das braucht nicht geschrieben werden.
Aber ein char-Array ("C-String") ist eben etwas grundlegend anderes als ein "char".
Insbesondere kannst Du chars mit dem Pluszeichen addieren:
char Buchstabe='A'+1;
Das ergibt den Buchstaben 'B', weil 'B' um genau eine Stelle hinter 'A' im ASCII-Alphabet kommt.
Aber ein "char plus irgendwas" ergibt immer nur einen einzelnen char und niemals einen String.
Um char-Arrays ("C-Strings") miteinander zu verbinden, muss eine Funktion aufgerufen werden: strcat