我写了下面的函数来查找文本中的模式:
bool match(char* patt,char* text){
int textLoc=0, pattLoc=0, textStart=0;
while(textLoc < (int) strlen(text) && pattLoc < (int)strlen(patt)){
if( *(patt+pattLoc) == *(text+textLoc) ){
textLoc= textLoc+1;
pattLoc= pattLoc+1;
}
else{
textStart=textStart+1;
textLoc=textStart;
pattLoc=0;
}
}
if(pattLoc >= (int) strlen(patt))
return true;
else return false;
}
如图所示,该函数采用
char*
类型的两个参数。我想使用此函数在binary file
中查找模式,您建议执行此问题什么? 最佳答案
这里没有对与错。我在这里要考虑的唯一区别是使用缓冲区/大小方法而不是字符串。
您还应该考虑如何阅读文件。您打算将整个文件读取到内存中还是要分节阅读?
如果要分节阅读,请务必保存每节的最后一部分(搜索模式的大小),并将其附加到下一节的开头。这样,还将评估每个部分的截止值。
关于c++ - 在二进制文件中找到模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9644881/