2012-03-11 3 views
0

У меня есть блок памяти, где мне нужно искать два последовательных символа.Поиск блока памяти для двух последовательных символов

Я не могу использовать strstr, так как мой блок памяти может содержать '\ 0', а memchr - поиск только одного символа. Есть ли какая-то функция, похожая на strstr, которая работает для non-null-terminated или мне следует использовать memchr, а затем ручную проверку следующего элемента. Благодарю.

+2

Вы хотите решение C или C++? –

+2

Библиотека GNU C имеет нестандартное расширение, называемое 'memmem', которое делает это. –

+2

http://stackoverflow.com/questions/3280553/memmem-stl-way –

ответ

2

C++ способ сделать это будет:

char* result = std::search_n(mem, mem + size, 2, c); 

Где mem это начало вашего буфера, size это размер в байтах, а c это символ искать. search_n должен возвращать mem + size, если совпадение не найдено.

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