2012-03-11 9 views
0

2つの連続する文字を検索する必要があるメモリブロックがあります。2つの連続する文字のメモリブロックの検索

メモリブロックに '\ 0'が含まれている可能性があり、memchrが1つのcharのみを検索するためstrstrを使用できません。 strstrに似たいくつかの関数があります。これはnullで終了しない関数であるか、またはmemchrを使って次の要素を手動でチェックする必要があります。ありがとう。

+2

CソリューションまたはC++ソリューションが必要ですか? –

+2

GNU Cライブラリには、これを行う 'memmem'という非標準的な拡張があります。 –

+2

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

答えて

2

これを行うためのC++の方法は次のようになります。

memはあなたのバッファの先頭である
char* result = std::search_n(mem, mem + size, 2, c); 

sizeは、バイト単位のサイズで、かつcはに文字です検索する。一致が見つからない場合、search_nはmem + sizeを返します。

関連する問題