for(int curChar=2;curChar<numsChar;curChar++) degrees=degrees*10+ic[curChar];
See, now it gets messy. Have to figure out to stop waiting for more digits to come in;
numsChar = sizeof[ic] or whatever that syntax is;
looks like something else is needed to catch the 100's place.
That kind of variability is hard to write for.
Writing for fixed constraints is much easier.
Switch Case does not support string comparison
See, that would have been handy to have!
Now, one would have to convert each command: PU, PD, RT, LT, FD, BK, HM into a number and then do switch:case on the number.
Or: change the command to make each one start with a unique letter and do switch:case on a single letter.
'U' P up pen
'D' P down pen
'R' T right turn
'L' T left turn
'F' D forward
'B' K backward
'H' M home
in which case, just single letter commands could be used, making things simpler still.