c++ - 比较字符串忽略 NUL
问题描述
我正在尝试比较两个std::strings
,"abc\0"
和"abc"
. 有没有办法在'\0'
比较时忽略一个字符,在这种情况下(NUL)?
现在我正在pop_back()
对带有尾随 NUL 的字符串进行操作以将其删除,但必须有更好的方法来处理这个问题。
解决方案
如果空终止符始终位于末尾,则可以使用std::strcmp
.
否则,您可以自己编写循环来迭代两个字符串并比较字符,在遇到终止符时使用特殊规则。
一个效率较低的版本可以纯粹使用标准算法来实现:创建每个字符串的副本,删除终止符 ( std::copy_if
),然后使用比较运算符 of std::string
。
推荐阅读
- node.js - React、Express 和节点 js 发布请求不起作用
- firebase - Flutter firebase错误接收器:“关闭:()=>地图
来自函数‘数据’:” - image - 如何在 SwiftUI 中基于 SF Symbols 获得相同大小的圆形图像?
- c - 尝试从 printf 语句中的函数打印静态变量时出现奇怪的输出
- php - 在内容 Drupal 7 中添加关于作者的视图
- go - linux平台下如何编译一个包含多个包和文件的go项目得到一个可执行文件?
- c# - 如何在 Microsoft Access 中使用 C# DLL
- html - 如何使用 css 正确发布文本?
- python - 如何在 python 中向这个哈希器添加盐?
- algorithm - A* 平均时间复杂度