std::string and std::string_view
string_view is compatible with both string and const char*. You don't need to do conversions or call .c_str().
string​
string_view​
It is a new type from C++17. It is a non-owning reference to either a const char* or a std::string.
It has many advantages: providing the same API as std::string for const char* without having to pay the cost of constructing a std::string, working with const char* and std::string as if they were the same type, etc.
Just remember that it is non-owning, like a reference: it is great for passing parameters around, but if you need to store it as a long-lasting variable you probably still need to use a std::string.