codice:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define isInteger(a) ((a>47&&a<57) ? (1) : (0))
int getCommand(char com, char opz='.'){
    printf("%c\n\n",com);
    
    if(com=='b');
    if(com=='c');
    if(com=='d');
                        
    if(opz!='.'){} 
    }


int main (){
    char a[128],c,num;
    int i;
// la variabile a contiene la riga (fgets())
    while(scanf("%s",&a)!=0){
                            num=sprintf(NULL,"%s",a); 
                            i=0;
                            for(c=a[i];i<num;i++){
                                      if(a[i]=='^'){
                                                    if(isInteger(a[i+1]))
                                                    getCommand(a[i+1],a[i+2]);
                                                    else
                                                    getCommand(a[i+1]);            
                                                    }
                                                  }
                            
                             }
          
    }
ti ho fatto la parte che intercetta i comandi, è un pò macchinosa ma semplice da capire anche se sei alle prime armi
sinceramente molti comandi parlano di spostare il cursore di righe o colonne, non mi viene in mente niente..quindi il programma è in pieno cantiere