2012-03-11 55 views
0

我得到了一塊內存,我需要搜索2個連續的字符。搜索2個連續字符的內存塊

我不能使用strstr,因爲我的內存塊可能包含'\ 0',而memchr只搜索單個字符。是否有一些類似於strstr的函數,適用於非空終止,或者我應該使用memchr,然後手動檢查下一個元素。謝謝。

+2

你想要一個C解決方案還是一個C++解決方案? – 2012-03-11 14:06:06

+2

GNU C庫有一個名爲'memmem'的非標準擴展來完成。 – 2012-03-11 14:08:48

+2

http://stackoverflow.com/questions/3280553/memmem-stl-way – 2012-03-11 14:11:46

回答

2

C++的方式做,這將是:

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

哪裏mem是你的緩衝區的開始,size是以字節爲單位的大小,c是字符搜索。如果找不到匹配,search_n應該返回mem + size