I believe my point is the best. Std::string provides two methods that give you the internal char array. On top of the plethora of other methods. As DTSCode pointed out, they are at least the same. Which implies std::string CAN'T be worse. But since it provides methods and functionality that a C string does not, on top of whatever benefit a C string might have, std::string is far superior.