You should always prefer std::string over char* or c-strings of any sort unless you are forced to do otherwise by a legacy API. And even then, std::string::c_str() is sufficient almost always.
C++ string objects are significantly simpler and less error-prone than arrays.