重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

現在、C言語を学習しています。

文字列から文字列を検索する関数に「strstr]がありますが、自作関数として自分で作成する方法を考えております。

文字列から文字を検索する事は出来たのですが、文字列を検索するシーケンスがわかりません。

有識者の方、御教授よろしく御願い致します。

A 回答 (3件)

やり方はいくつもありますが、オーソドックスなのは:



"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)に戻る。
    • good
    • 0
この回答へのお礼

御回答ありがとうございました。

手順を踏んで説明して頂きわかりやすかったです。

お礼日時:2006/02/05 01:57

補足。



> ANo.1: 文字列検索の定番アルゴリズムとして「BM法」と呼ばれる物があります。

BM法は検索する文字列がそこそこ長くないと面倒な割に速くない。
    • good
    • 0

文字列検索の定番アルゴリズムとして「BM法」と呼ばれる物があります。

かなり有名で、基本情報処理試験(旧2種)などでも出題されたりしています。

BM法については、色々情報が公開されているので、調べてみてください。
    • good
    • 0
この回答へのお礼

御回答ありがとうございました。

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

お礼日時:2006/02/05 01:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!