Except that you can easily go from std::string to cstring and back in the same program. And many of the standard library functions work fine on c strings (probably over half of &lt;algorithm&gt;), etc. IMO theres no compatibility issue between std::string and c strings.