这可能是一个愚蠢的问题,但如果我有一个C++字符串如下,
str = "the cat is black\n"
Run Code Online (Sandbox Code Playgroud)
如果我删除最后一个字符,即'\n',这是否会留下一个空终止字符串?下面的语句是否适用于从原始字符串str创建空终止的char*?
char *c = str.erase(str.size()-1).c_str();
Run Code Online (Sandbox Code Playgroud)
是的,std :: string :: c_str()将始终返回以null结尾的字符串.
http://www.cplusplus.com/reference/string/string/c_str/
http://en.cppreference.com/w/cpp/string/basic_string/c_str