检查字符串是否在文件中

时间:2016-05-14 18:27:09

标签: c string file binaryfiles strstr

我一直在尝试制作一个程序来检查文件是否包含其他文件。 (就像反病毒一样)。我试图使用strstr()这样做,但显然strstr()不能很好地工作。

检查文件中是否包含其他文件的最佳解决方案是什么? 编辑:我正在处理二进制文件。

3 个答案:

答案 0 :(得分:1)

比较C中任意字节序列的方法是memcmp。这是标准C89功能。

答案 1 :(得分:0)

您可以实施Knuth-Morris-Pratt算法,这是解决您遇到的问题的最佳解决方案之一。

也许值得探索和学习字符串匹配问题的其他解决方案 有关字符串搜索算法列表,请参阅:https://en.wikipedia.org/wiki/String_searching_algorithm

了解KMP算法的资源:

注意:您也可以在字节上使用这些算法。

答案 2 :(得分:0)

memmem函数,它在数据文件中查找子序列。 与strstr相比,memmem函数不会停留在\0,这样您就可以在任何文件中找到任何数据。