2

我正在从事一个软件项目,发现了许多错误使用 find_first_of()、find_first_not_of()、find_last_of() 和 find_last_not_of() 的示例。这些 std::string 方法采用字符串参数来搜索要搜索的一组字符,而开发人员真正的意思是使用 compare()、find() 或 rfind(),它们采用字符串参数来搜索要搜索的字符串。

现在,教育每个人并且再也不会发生这种情况会很棒,但是,我想创建一个代码检查器来识别可疑的用法并标记它们以供审查,以尝试在半通用的情况下半自动化地解决这个问题时尚。

我正在寻找好的启发式方法来发现大多数误报很少的问题。哪些正则表达式搜索模式可能有效,或者有人可以考虑其他建议来尝试自动解决此问题以获得最多出现次数?

请不要对雇用更好的开发人员或类似的人做出快速的回答,我希望在现有资源的情况下改善这种情况。

4

1 回答 1

2

这实际上可能是您需要目视检查每个呼叫find_first_of和朋友的情况。看起来通常不会有很多电话,您可以在验证它们是否正确时以某种方式标记它们。通过检查所有呼叫,您可以确信现有问题已得到解决。

我能想象的唯一启发是,如果“比较”字符串不是文字或常量,它更有可能是不正确的。

于 2011-06-20T22:00:17.067 回答