ワイルドカード('*', '?')の使用可能な文字列比較関数を作る。 //********************************************************* // 第1引数にワイルドカードを含む文字列を指定する。 // 2つの文字列が一致すれば真、さもなくば偽を返す。 //********************************************************* int // 一致すれば 真 strmatch ( const char *ptn, // ワイルドカード const char *str // 比較する文字列 ) { switch( *ptn ) { case '\0': return '\0' == *str; case '*': return strmatch( ptn+1, str ) || (('\0' != *str) && strmatch( ptn, str+1 )); case '?': return ('\0' != *str) && strmatch( ptn+1, str+1 ); default: return ((unsigned char)*ptn == (unsigned char)*str) && strmatch( ptn+1, str+1 ); } }//strmatch 関連 | |