我想看一个字符串(含有?*,与文曲星类似)与另一个普通字符串是否匹配,
如cl*k 与 clock 是匹配的。
有好的算法吗?
或者现成的函数,最好给个例子
谢谢。
关于正则表达式,个人感觉过于复杂繁琐,如果可以给个例子也很感谢:)
#include<stdio.h>
#include<string.h>
main()
{
char *p1=NULL,str[10]={'\0'},*p2=NULL,str2[10]={'\0'};
int i,flag=0;
printf("the first string:");
gets(str);
printf("the second string:");
gets(str2);
p1=str;
p2=str2;
for(;*p1!='\0'&&*p2!='*'&&*p2!='?';p1++,p2++)
{
if(*p1==*p2)
continue;
else
{
flag=1;
break;
}
}
p1=str+strlen(str)-1;
p2=str2+strlen(str2)-1;
for(;flag==0&&*p2!='*'&&*p2!='?';p1--,p2--)
{
if(*p1==*p2)
continue;
else
{
flag=1;
break;
}
}
if(flag==0)
printf("the two string accord with each other!");
else
printf("the two string do not accord with each other!");
getch();
}
呵,这样就行了,从后面再检验一次就行了.