您遇到的问题是c_str()
返回一个无法修改的缓冲区(const
),同时stem()
可能会修改您传入的缓冲区(而不是const
).您应该复制结果c_str()
以获得可修改的缓冲区.
页面http://www.cplusplus.com/reference/string/string/c_str/提供了有关C++ 98和11版本的更多信息.他们建议更换char * b = s.c_str();
以下内容:
char * b = new char [s.length()+1]; std::strcpy (b, s.c_str());