2016-10-12 7 views
0

下線と文字からなるパターンに一致するプログラムを単語で作成しようとしています。手紙はそれ自身と一致します。アンダースコアは任意の文字に一致します。たとえば、_a_,_at、またはc_t_のパターンは、埋め込まれているためvacateamplificationと一致します。パターンが接頭辞、接尾辞の場合、または各単語とパターンのすべての文字を繰り返して比較することで、その単語と同じサイズの場合にこれを実装しました。しかし、パターンが単語のどこにでも埋め込まれているときに、そのパターンを実装する方法はわかりません。任意のアイデア(私はC++ 98を使用しています)? ありがとうございます。埋め込みパターンと一致する単語

+0

単純な解決策は、一致の開始位置を0から(wordlength-expressionlength)までループし、各開始位置を一致させることです。 –

+0

しかし、そのパターンが単語の冒頭にある場合にのみ機能しますか? –

+1

https://en.m.wikipedia.org/wiki/String_searching_algorithmをご覧ください。 1つ1つのアプローチ(KarstenKoopが記述したもの)はNaive文字列検索と呼ばれます。 – PcAF

答えて

0

同じ長さの単語を2つ一致させるには、strcmp()にアンダースコアを常に一致として受け入れる同様の関数を記述します。 haystack +0、haystack + 1、haystack +2などを呼び出すことで、 "haystack"内の任意の場所を検索することができます。

関連する問題