输入:任意字符串,要匹配的字符串
输出;判断结果(true or false)
实现思路:匹配时有以下几种情况--1,两个字符串对应字符相同 2,对应字符不同,但要匹配的字符串的字符为?3.要匹配字符串为*直接对应整个字符串 4,前面相对应,后面有*对应剩余所有字符
void judge(char x[], char y[],int a,int b)
{
int i,j;
j = 0;
for (i = 0; i < a; i++)
{
if (y == ”*“)//若直接为*则匹配整个字符串输出为true
{
printf("true\n");
break;//记得跳出循环
}
if (y[i] == '?'||y[i]==x[i])//?匹配任意字符,不用处理
{
continue;
}
else if (i == (b - 1) || (y[i] == '*'&&y[i+1]==' ')//若循环完,依旧没有结果或前面匹配,后面出现*匹配全部则输出true(注意*后也要没有东西)
{
printf("true\n");
break;
}
else if(y[i]!=x[i])//若出现不匹配则直接输出false
{
printf("false\n");
break;
}
}
}
int main()
{
char a[] = " ";
char b[] = " ";
printf("请输入a:\n");
scanf("%s", a);
int n1 = strlen(a);
int n2 = strlen(b);
printf("请输入b:\n");
scanf("%s", b);
judge(a, b,n1,n2);
return 0;
}
//谢谢观看,如有不足请不吝赐教,有一起学习的伙伴互关啊