am I right in thinking that ...
Strings cause problems
strings don't?
Not exactly. Strings cause memory allocation/deallocation issues, and are not the most suitable class for a small microcontroller.
C strings are not immune from problems, given how easy it is to write beyond the end of an array, but, as least with strings, only you can shoot yourself in the foot. C hands you the gun, and gives you aiming instructions.
The String class (actually, the free() function) aims the gun and squeezes on the trigger.