PaulS:
So, I'm assuming that for an array of characters to be treated properly as a string in c it must have '\0' in the last element. Without this string functions will not return the expected results.
Correct.
Paul, you are infering that the value of cmd is the memory address of the first element of the array, correct?
No. I inferred nothing. I stated, as a fact, something. The array name, as you are using it, refers to the memory location where the data is stored. In that context, the array name is a pointer. The address that it points to can never be "OPM".
for example an array 8 bits wide
The smallest memory unit on the Arduino is a byte, which is 8 bits wide. You can not have bit-sized arrays in C.
Paul, do you mean to come across as an obnoxious arrogant individual?
You obviously have some expertise, delivering it in a manner that doesn't infer idiocy in the person you are trying to help is something you should consider.
If you suffer from aspergers, please take this as constructive criticism.