Is String function family inherently dangerous?

sherzaad:
I think that is the keypoint. Rather than saying "String is Evil on Arduino", I think if a general rule like
"if dynamic memory used is more than x% of total memory available then String is not advisable"
it would be more useful.

but how to define 'x' is beyond me...

i am pretty sure 'x' should be 50 or less then you are way safer, actually i have couple of projects on site running on Arduino Mega 2560, with bunch of Strings in it, dynamic mem. reads 30% upon compiling and never had issues for months (6+) now while being on site

played with couple of ESP8266 , never used a single char pointer/array in it and the dynamic mem. reads 31% upon compiling, bunch of bunch of Strings are in there and never had issues with it

I once tried to go for 'string' ( lower case 's' ) in nano+sim800L related project , tested it with 'receiving sms' and displayed it on serial monitor' which worked pretty well for couple of minutes , then , sms was displayed truncated , in short the use of 'string' was not that reliable at all, i gave up,went back to old time friend 'String'