【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

c言語でアドレス帳のデータベースを設計しています。
find関数で名前の読みで条件に当てはまるデータを検索できる仕様です。UNIXのワイルドカードにある"[]"([文字列]に含まれるどれか1文字)でも検索できるようにしたいのですが、どのように設計したらいいのかわからないので、わかる方いらっしゃいましたら教えてください。

ワイルドカード"?"の設計例
if(cp[x]=='?') {
if(adp->r_name[y]=='\0'){ /* adp->r_name 関数名 */
flag=1;
break;
}
if(adp->r_name[y]=='\n'){
flag=1;
break;
}
}

A 回答 (2件)

もし、UNIXなどのOS上で動かしているのなら、


「SQLライブラリを扱うためのC言語インタフェース」を使うのも、一案かと思います。(http://tria.s31.xrea.com/sqlite/c_interface.html)

そうではなく、一から自力で作りたいのなら、正規表現を使ったプログラムにするか、strcmp関数を使って再帰的に呼び出す事になるでしょう。

参考URL:http://tria.s31.xrea.com/sqlite/c_interface.html
    • good
    • 0

正規表現のライブラリを探す方が早いのでは?


標準ライブラリではない物は使うなと言う事であれば別ですが。
    • good
    • 0

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

関連するカテゴリからQ&Aを探す