Puoi fare una lista linkata contenente array di char,ma se non ti va di implementare la lista potresti anche tenere tutto sullo stesso array di char.
In string.h c'è la funzione strtok per suddividere una stringa in token.Basta specificare il delimitatore, ti faccio un esempio:
In pratica ti divide la stringa ogni volta che incontra uno spazio, o un carattere '[' , o ']'.Quei caratteri verranno poi eliminati dalla stringa, per cui ora hai direttamente i comandi su cui lavorarci sopra.codice:char *str; char *tokens; // allochi spazio per le stringa e prendi str in input tokens=strtok(str," []");