2つの連続する文字を検索する必要があるメモリブロックがあります。2つの連続する文字のメモリブロックの検索
メモリブロックに '\ 0'が含まれている可能性があり、memchrが1つのcharのみを検索するためstrstrを使用できません。 strstrに似たいくつかの関数があります。これはnullで終了しない関数であるか、またはmemchrを使って次の要素を手動でチェックする必要があります。ありがとう。
2つの連続する文字を検索する必要があるメモリブロックがあります。2つの連続する文字のメモリブロックの検索
メモリブロックに '\ 0'が含まれている可能性があり、memchrが1つのcharのみを検索するためstrstrを使用できません。 strstrに似たいくつかの関数があります。これはnullで終了しない関数であるか、またはmemchrを使って次の要素を手動でチェックする必要があります。ありがとう。
for (p = memstart; p <= (memstart + memsize - stringsize); p++)
{
if (memcmp(p, string, stringsize) == 0)
return p; /* found */
}
return NULL; /* not found */
http://www.koders.com/c/fidD66F4C2F1935B0FF6158A83C4FBF134C4432F5CF.aspx
これを行うためのC++の方法は次のようになります。
mem
はあなたのバッファの先頭である
char* result = std::search_n(mem, mem + size, 2, c);
、size
は、バイト単位のサイズで、かつc
はに文字です検索する。一致が見つからない場合、search_nはmem + size
を返します。
CソリューションまたはC++ソリューションが必要ですか? –
GNU Cライブラリには、これを行う 'memmem'という非標準的な拡張があります。 –
http://stackoverflow.com/questions/3280553/memmem-stl-way –