У меня есть двоичные данные, которые содержат текст. Текст известен. Что может быть быстрым методом для поиска этого текста:
Как например.
This is text 1---
!@##$%%#^%&!%^$!
Как мне найти текст This is text 2
.
В настоящее время я делаю как:
size_t count = 0;
size_t s_len = strlen("This is text 2");
//Assume data_len is length of the data from which text is to be found and data is pointer (char*) to the start of it.
for(; count < data_len; ++count)
{
if(!memcmp("This is text 2", data + count, s_len)
{
printf("%s\n", "Hurray found you...");
}
}
- Есть ли другой способ, более эффективный способ сделать это
- Будет ли замена
++count logic
на memchr('T') logic
help <= Пожалуйста, игнорируйте, если это утверждение не ясно </li>
- Какой должна быть средняя сложность big-O в случае memchr