大家都知道stringstream.str()
需要一个字符串变量类型来存储内容stringstream.str()
进去 。
我想存储的内容stringstream.str()
转换为 char 变量或 char 数组或指针。
可以这样做吗?
请写一个简单的例子来回答你的问题。
为什么不只是
std::string s = stringstream.str();
const char* p = s.c_str();
?
编辑:请注意,您不能自由地给出p
在你的函数之外:它的生命周期与s
,所以您可能想要复制它。
编辑2:正如@David建议的那样,copy上述意味着复制内容,而不是指针本身。有几种方法可以实现这一点。您可以手动执行此操作(从 C“继承”的传统方式)——这是通过以下函数完成的std::strcpy。这种方式相当复杂,因为它涉及手动资源管理,而这通常是不鼓励的,因为它会导致更复杂且容易出错的代码。或者您可以使用智能指针或容器:它可以是std::vector<char>
or std::unique_ptr/std::shared_ptr.
我个人会选择第二种方式。请参阅对此的讨论和@Oli 的回答,它可能很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)