• ベストアンサー

文字列から文字列を検索するプログラム

現在、C言語を学習しています。 文字列から文字列を検索する関数に「strstr]がありますが、自作関数として自分で作成する方法を考えております。 文字列から文字を検索する事は出来たのですが、文字列を検索するシーケンスがわかりません。 有識者の方、御教授よろしく御願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

やり方はいくつもありますが、オーソドックスなのは: "m文字からなる文字列 source" から "n文字からなる文字列 target" を探す---- 1. int pos = 0; 2. source[pos]を起点として、文字target[0]と一致するsource[t]を探す。なければ終わり。 3. (2)で得られた位置 t からn文字がtargetと一致すれば発見(終わり) 4. pos = t+1 として(2)に戻る。

5502k
質問者

お礼

御回答ありがとうございました。 手順を踏んで説明して頂きわかりやすかったです。

その他の回答 (2)

回答No.3

補足。 > ANo.1: 文字列検索の定番アルゴリズムとして「BM法」と呼ばれる物があります。 BM法は検索する文字列がそこそこ長くないと面倒な割に速くない。

  • neuron-x
  • ベストアンサー率52% (139/266)
回答No.1

文字列検索の定番アルゴリズムとして「BM法」と呼ばれる物があります。かなり有名で、基本情報処理試験(旧2種)などでも出題されたりしています。 BM法については、色々情報が公開されているので、調べてみてください。

5502k
質問者

お礼

御回答ありがとうございました。 文字列検索の定番として「BM法」というものがあるんですね。 これから調べてみます。

関連するQ&A