When pretty much every other language out there, including C and C++, can do string handling better than Rust can, the problem isn't with the fact that competition is happening. The problem is solely that Rust's string handling is total shit.
You're kidding, right? I've never used Rust, so I can't testify to its string handling, but I'm very familiar with C and C++ and using strings in both, and they both completely suck. C is absolutely horrible, and C++ is terrible too if you use the standard library. You only get good string-handling in C++ by switching to a library like Qt.
As for what it's competing against, that's just ridiculous. No language is competing against every language out there; every language has its strengths and weaknesses. C is really good at low-level programming that's one step above assembly, but it sucks at a lot of things (including string handling). Perl is excellent at string parsing, but sucks at performance and readability. R is really good at math, but completely unusable for writing an OS. I'm sure Rust fits in there too somehow. The point is, you can't just compare Rust, or any language, against any other arbitrary language and then bash it because it fails. Is C unusable because it sucks at text parsing? If text parsing is what you need, then yes, but if you're writing an OS kernel, then no.