【发布时间】:2019-02-11 16:24:43
【问题描述】:
我正在尝试比较两个 std::strings、"abc\0" 和 "abc"。
有没有办法在比较时忽略一个字符,在这种情况下是 '\0' (NUL)?
现在我正在对带有尾随 NUL 的字符串执行pop_back() 来删除它,但必须有更好的方法来处理这个问题。
【问题讨论】:
-
您可以将 C 字符串与 C 字符串比较函数(
strcmp等)进行比较,这会忽略\0。不过我还是更喜欢你现在的方法。 -
NUL 最初是如何进入其中的?这就是我要解决的问题。
-
@SombreroChicken 更准确地说:它不会忽略,它会在第一个空字符处停止 - 所以
"ab\0c"和 "abc" 也不会比较相等。如果它只是在最后,虽然(pop_back!)...... -
@NeilButterworth:无关紧要。 NUL 字符在
std::string中完全有效。 -
@NicolBolas 虽然 NUL 字符在
std::string中完全有效,但根据问题,这似乎不是预期的。