In my experience even a compiler upgrade frequently breaks code in unexpected ways. This change is a language change. That is a major change. What are the odds of it not introducing a multitude of bugs, many of which might be really hard for the developers to discover (but easy for the customer).
Also, I'm guessing that the main reason you are using C instead of C++ is team experience. Back in the 90s we learned the hard way that mixing the OO and structured paradigms causes many more problems than sticking to one paradigm or the other. If your team is not experienced with C++ then they will mix in the most inappropriate and bug-causing places.
I'm reasonably certain that changing to a C++ compiler will have a huge negative impact up front. In the long run you'll probably gain but that may be years away.
Your best bet is to write a string library (in C) that helps resolve the issues your are seeing. Then force your developers to use the library. Have you looked into using the alternate safe versions of functions like snprintf, strncpy etc... If your compiler doesn't have those functions already then use that interface and write your own.
If you really want to use C++ then do it on your next project. In the meantime keep a list of problems with this project so you can sell management to the idea that C++ is a better approach than C on that next project. Unless you are writing device drivers or mathematical algorithms that should be an easy sell.