You're here: Snippet Directory » C/C++ (495)
Language:

match*?

Language: English
Programming Language: C
Published by: panchi [not registered]
Last Update: 5/15/2006
Views: 141


Description

match * and ? in five lines.

Code

1 2 int ignore_case = 1; /* eg. matchi("a*b","AXYZB") .. true */ 3 int matchi( const char * p, const char * s ) 4 { 5 switch( *p ){ 6 case '\0' : return ! *s ; 7 case '*' : return matchi( p+1, s ) || *s && matchi( p, s+1 ); 8 case '?' : return *s && matchi( p+1, s+1 ); 9 default : 10 return ( (*p == *s) || 11 (ignore_case && (toupper(*p)==toupper(*s))) 12 ) && matchi( p+1, s+1 ); 13 } 14 } 15 16 /* eg. match("a?","a:") .. true */ 17 18 int match( const char * p, const char * s ) 19 { 20 switch( *p ){ 21 case '\0' : return ! *s ; 22 case '*' : return match( p+1, s ) || *s && match( p, s+1 ); 23 case '?' : return *s && match( p+1, s+1 ); 24 default : return *p == *s && match( p+1, s+1 ); 25 } 26 } 27 28

No comments avaiable

Add a comment

Name *  

Email (won't be displayed) *    

Website  

Comment *  

Sicherheitscode Security Code *    

RSS