Forse sono OT, ma ci provo
Buonasera,
faccio qualche esercizio con le stringhe, visto che quello che per me solitamente è banale, in C diventa complicato ![]()
Aggiungere un filler ad una stringa, in pratica concatenare due stringhe
Questo è quello che ho scritto, e che sembra funzionare
char text[] = "pippo";
byte len = strlen(text);
byte num = 75;
char filler[num+1];
memset(filler, '.', sizeof(filler));
filler[num] = '\0';
char temp[len+num+1];
strcpy(temp, text);
strcat(temp, filler);
- per riempire una stringa con un carattere, memset è la scelta corretta, o ad esempio è possibile riempirla già in fase di definizione?
- per la concatenazione, quello che ho scritto, è l'approccio corretto?
inoltre, avevo provato questo
char text[] = "pippo";
byte len = strlen(text);
byte num = 8;
memset(text + len, '.', num);
text[len + num] = '\0';
essendo text in pratica una costante, mi sarei aspettato che non funzionasse, o meglio, mi sarei aspettato qualche problema, visto che vado ad aggiungere bytes utilizzando un puntatore (spero di non aver detto una castronata), al contrario funziona fino a che num è <= 8, dopo di che il disastro!
Perchè proprio 8 bytes?
Scusate se le domande possono sembrare stupide, ma per me normalmente concatenare stringhe si risolve con una riga di codice e senza creare nuove variabili!
TIA
Federico