C++ (and C) (in contrast with Java) are very well defined. C++ is exactly the ISO/IEC 14882:2003 and that includes the string library (section 21 of the standard). Java on the the other hand... well... So please, don't compare those two (three) languages. Java is just a product that a company defines while C++ is a standard. There is no limitation on what you can do with C++ and even the oldest C++ programs still compile and run. Java OTOH has a great number of limitations and questioned backward compatibility. Of course C beats' em all on those aspects