Why would I ever want to call std::string::data() over std::string::c_str()? Surely there is some method to the standard's madness here...
std::string::data()
std::string::c_str()
c_str() guarantees NUL termination. data() does not.