从C++字符串中删除EOL但保留'\ 0'

1 c++ string

这可能是一个愚蠢的问题,但如果我有一个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)