- ベストアンサー
ファイルの読み込みとAND検索を行うプログラムの作成方法
- 検索プログラムにおいて、索引ファイルからデータを読み込み、キーワードを入力して検索する方法を考えます。
- fgets()とstrtok()を利用することで、ファイルの読み込みとキーワードの区切りを行います。
- キーワード入力は、空白で区切って複数入力可能にし、AND検索に対応させます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Web検索ってyahooとかの検索エンジンの事をいっているのですか? 基本的にはデータベースを使っています。 検索のアルゴリズムについては「BTree」で調べてください。 cgi(perl)で検索しているものは、おそらくハッシュを使っています。 (perlにはc++でいうmapにあたるものが最初から実装されている) 有名なnamazuはインデックスファイルを持っているようです。 http://www.namazu.org/ ソースコードが公開されています。 ただデータの量が少ないのなら上から順に検索していく シーケンシャルサーチで問題ないかと思います。 お見受けしたところTommy222は初心者のようですので、 とりあえずfgetsとstrtokを使ってファイルの内容を区切って 表示させるプログラムを作ってはどうですか。 表示できれば後は条件と一致するもののみ 表示にすればいいだけですから。 ・ファイルの読み込み http://www.kumei.ne.jp/c_lang/intro/no_18.htm ・strtok http://sometime.minidns.net/~ccgi/strtok.html 後はお調べください。
その他の回答 (1)
- sha-girl
- ベストアンサー率52% (430/816)
まずC++なのかどうか 使っていいのならSTLのmapを使えば 良いでしょう。 http://www.kumei.ne.jp/c_lang/cpp/cpp_68.htm ・キーワード入力で、2つ以上入力された場合、どのように変数に格納すればよいでしょうか? C++が可能なら、vectorにで格納します。 http://www.kumei.ne.jp/c_lang/cpp/cpp_65.htm CでもLIST構造やハッシュを駆使すれば可能です。 >・ファイルの読み込みで、fgets()を使い、strtok()で区切るといいですか? スタイルによるのでなんともいえません。好きなものを使ってください。 ちなみにstrtokは内部で静的メモリを確保するので2つ同時に使うことはできません。
補足
すいません。説明不足でした。 C++ではありません。C言語です。 Web検索のプログラムってどうなっているんですか? インデックスファイルから検索しているのは知っています。 ファイルの読み込みから手こずっています。