私は、ある種の文字シーケンスが現れる時間を数えなければならないバイナリデータの配列を持っています。 針が見つからない場合、私は「干し草の山」cアレイを前進させて配列のスライスを取る
int indexOf(const char *needle, int needleLen, const char *haystack, int haystackLen) { /.../ }
に「針」のインデックスを見つけるために、機能を定義した瞬間にそれはそれ以外の場合は、インデックスを返し、-1
を返します。
次のステップは、while
-loop(-1
まで)で実行してカウントを取得することです。
私の質問は:私はhaystack
にインデックスを見つけた時はいつでも、私は最初の文字のindexOf
によって決まるがオフにchompされていhaystack
のスライスを取る方法を教えてください。
例: 私の干草はhello_world
、針はo
です。 indexOf
は4
を返します。 hello world
のスライスを最初の4
文字なしで使用するにはどうすればよいですか? など。私が望む_world
あなたの 'indexOf'関数に害はありませんが、[' strstr'](http://en.cppreference.com/w/c/string/byte/strstr)を使わないのはなぜですか? – StoryTeller
確かにstrstrはバイナリデータでは機能しません。また、\ 0が発生してもそれ以上は見えません。 – Seneca