C++ 在内存块中搜索2个连续字符

C++ 在内存块中搜索2个连续字符,c++,c,C++,C,我有一个内存块,需要在其中搜索两个连续字符 我无法使用strstr,因为我的内存块可能包含“\0”,而memchr只搜索单个字符。是否有一些类似于strstrstr的函数,可用于非空终止,或者我应该使用memchr,然后手动检查下一个元素。谢谢。 (p= MeMeXT;P >(p= MeMeXelp;P< P>)C++的方式是: for (p = memstart; p <= (memstart + memsize - stringsize); p++) { if (memcmp(

我有一个内存块,需要在其中搜索两个连续字符


我无法使用strstr,因为我的内存块可能包含“\0”,而memchr只搜索单个字符。是否有一些类似于strstrstr的函数,可用于非空终止,或者我应该使用memchr,然后手动检查下一个元素。谢谢。

<代码>(p= MeMeXT;P<代码> >(p= MeMeXelp;P< P>)C++的方式是:

for (p = memstart; p <= (memstart + memsize - stringsize); p++)
{
    if (memcmp(p, string, stringsize) == 0)
    return p; /* found */
}
return NULL; /* not found */
char* result = std::search_n( mem, mem + size, 2, c );

<> >代码> MEM是缓冲区的开始,<代码>大小<代码>字节大小,<代码> C++ >代码>是要搜索的字符。如果没有匹配,SexCHyn应该返回<代码> MEM+大小< /代码>。< /P> < P>
char* result = std::search_n( mem, mem + size, 2, c );

<代码> > MEM是缓冲区的开始,<代码>大小>代码>字节大小,代码> C >代码>是要搜索的字符。如果没有匹配,SexCHyn应该返回<代码> MEM+大小< /代码>。< /P>你想要一个C解决方案还是一个C++解决方案?GNU C库有一个非标准的扩展名为<代码> MeMMEM < /代码>可能是一个C解决方案还是C++解决方案?GNU C库有一个非标准的扩展名为“代码> MeMeM。