如何解决如何将终止NUL字符\\\\ x00转换为字符串?
| 由于\\ x00也是终止字符,我如何获得带有空字符\\ x00的字符串? 我确实在程序的一部分中需要它。 我需要的字符串是\“ \\ x00 \\ x00 \\ x00 \\ x00 \”。是否有一些特殊的语法?它是什么?解决方法
std::string str(\"\\0\\0\\0\\0\",4);
该构造函数告诉字符串使用char *的前4个字符,而不将任何\\ 0字符解释为null。
,在C ++中,std::string
类在包含NUL字符时将起作用。
然而:
c_str()
功能将失败。
读取“ 3”的构造函数将失败。
使用std::vector<char>
可能会更好。
,您做对了。您只需要避免将null解释为结束字符。
但是,您怎么知道它的结尾呢?我不知道;您可以将长度存储在某个地方。
,您可以使用\“ normal \”字符串来嵌入null,但是在第一个null处,任何期望以null终止的字符串的函数都将停止对其进行处理;因此,您需要使用计数的字符串。
C ++std::string
是计数字符串的一种,您可以使用它来携带这些字符串。但是请记住,使用时不要将其转换回C字符串(即,不要使用c_str()
方法),否则您将回到平方。
但是,要获得更具体的建议,您应该更好地解释您要实现的目标。
,如果它是您想要的std :: string,则可以获取任何大小
std::string s(10,\'\\0\');
给您一个包含10个nul字符的字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。