2013-03-02 5 views
0

сегодня Я пытаюсь найти шаблон байтов в массиве (в данном случае указатель)Найти шаблон байтов в массив байтов

Я знаю, что я мог бы использовать зЬй :: строка иглы() и Стог и т.д. но мне было интересно, могу ли я использовать это с BYTE (unsigned char)?

Я также знаю длину BYTE * _zone, так что это тоже не проблема. Какие-нибудь способы, чтобы я мог сделать это? (также приветствуются любые примеры кода :))

Еще раз спасибо!

+0

Код пожалуйста .... – Jon

ответ

1

Метод std::stringfind() является функцией элемент, который предназначен, чтобы найти другую std::string или массив символов char* внутри станд :: строка

Так, чтобы ответить на ваш вопрос, если стог является std::string вы должны быть в состоянии передать массивы char* непосредственно методам поиска.

Если стог сена не является номером std::string, вы можете сделать из него std::string, а затем сделать то же самое.

1

std::string на самом деле typedef для std::basic_string<char>. Вместо этого вы можете использовать std::basic_string<BYTE>, и большинство (всего?) std::string функций, в частности .find(), будут работать.

1

Если вы не хотите использовать существующие функции библиотеки, реализуйте свой любимый общий алгоритм соответствия строк, например Knuth-Morris-Pratt, Boyer-Moore или Rabin-Karp.

Смежные вопросы