我一直在尝试制作一个程序来检查文件是否包含其他文件。 (就像反病毒一样)。我试图使用strstr()这样做,但显然strstr()不能很好地工作。
检查文件中是否包含其他文件的最佳解决方案是什么? 编辑:我正在处理二进制文件。
答案 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
,这样您就可以在任何文件中找到任何数据。