Dein MasterString ist momentan genau ein Zeichen gross. Klar kannst Du damit auch Wort-Befehle interpretieren, aber das endet dann in einer verschachtelten IF-Wüste. Als erstes würde ich mal einen Befehl-Trenner definieren. Wenn es möglichst Worte sein sollen, wäre LF (ASCII 0x0A) angebracht. Mit diesem Zeichen beginnt dann immer ein neuer Befehl. Also liest Du ein bis dieses Zeichen erkannt wurde. Dann füllst Du Deinen Befehlspuffer mit Zeichen bis dieser entweder überläuft oder wieder ein LF erkannt wurde. Ist dies der Fall, kannst Du mit der strncmp()-Funktion überprüfen, ob ein von Dir definierter Befehl erkannt wurde.