首页 > 解决方案 > 比较字符串忽略 NUL

问题描述

我正在尝试比较两个std::strings,"abc\0""abc". 有没有办法在'\0'比较时忽略一个字符,在这种情况下(NUL)?

现在我正在pop_back()对带有尾随 NUL 的字符串进行操作以将其删除,但必须有更好的方法来处理这个问题。

标签: c++stringstl

解决方案


如果空终止符始终位于末尾,则可以使用std::strcmp.

否则,您可以自己编写循环来迭代两个字符串并比较字符,在遇到终止符时使用特殊规则。

一个效率较低的版本可以纯粹使用标准算法来实现:创建每个字符串的副本,删除终止符 ( std::copy_if),然后使用比较运算符 of std::string


推荐阅读