BBC Turtle Clone?

rofl
many programmers don't make a distinction between char ' and char array " when defining constants. When you do I see that as an indication of quality. Moreover the code is readable and well documented. It shows knowledge of arrays and string to value conversion.

Switch Case does not support string comparison. If you want to do something with 2 chars you would have to do something like 'a'*FF+'b'.
Not a pretty sight. So if then else is the best option I know.

Now, if the degrees or distance was allowed to be 1,2, or 3 digits,

not really just change

degrees = ic[2]*100 + ic[3]*10 + ic[4]; // convert to 0 to a number

to something like:

degrees=0;
for(int curChar=2;curChar<numsChar;curChar++) degrees=degrees*10+ic[curChar];

Best regards
Jantje