查找字节数组中的字节模式

时间:2013-03-02 22:15:03

标签: c++ search byte

今天我试图在数组中找到一个字节模式(在这种情况下是指针)

我知道我可以使用std :: string needle()和haystack等,但我想知道我是否可以使用BYTE(unsigned char)?

我也知道BYTE * _zone的长度,所以这也不是问题。我有什么办法可以做到这一点? (也赞赏任何代码示例:))

再次感谢!

3 个答案:

答案 0 :(得分:1)

std::string实际上是std::basic_string<char>的typedef。您可以使用std::basic_string<BYTE>代替,而大多数(所有?)std::string功能,尤其是.find(),只会有效。

答案 1 :(得分:1)

如果您不想使用现有的库函数,请实现您最喜欢的通用字符串匹配算法,例如Knuth-Morris-PrattBoyer-MooreRabin-Karp

答案 2 :(得分:1)

find() std::string方法是一个成员函数,用于在std :: string中找到另一个std::string或一个字符数组char*

所以如果大海捞针是std::string,那么要回答你的问题,你应该能够将char*数组直接传递给find方法。

如果大海捞针不是std::string,你可以用它来制作std::string,然后再做同样的事情。