C言語なら俺に聞け! Part 101
■ このスレッドは過去ログ倉庫に格納されています
0360デフォルトの名無しさん
05/02/04 22:04:05このページのワイルドカードを含む文字列比較の関数なんですが、
case '*'のところがよくわかりません。
どなたか解説お願いします。
//*********************************************************
// 第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
■ このスレッドは過去ログ倉庫に格納されています