Me? I'd go back in time and locate the man responsible for leaving a genuine string data type out of the original C implementation. I'd put a gun to his head and force him to get off his lazy ass and write a string data type with built-in memory management and bounds checking. He wouldn't be allowed to let C out into the wild until he'd done this.
You are barking up the wrong tree, Tony. Don't blame C, blame the incompetent programmers. It's possible to write bad code in any language... If you want automatic string management and bounds checking use Pascal or Java or whatever. C is a low-level language, it allows you to write efficient code but it also allows you to shoot yourself in the foot. Use with care.
Borislav