1. 程式人生 > >華為code中的字串萬用字元匹配

華為code中的字串萬用字元匹配


#define  FALSE 0
#define TRUE 1
#define M 300
#include<stdio.h>
#include<string.h>
int equal(char *s, char *p)
{
	char temp;
	char * p_tmp;

	while (*s)
	{
		if (*s != '?' && *s != '*')
		{
			if (*s != *p && (abs(*s - *p) != 32))
			{
				return FALSE;
			}
			else
			{
				s++;
				p++;
			}
		}
		else
		{
			if (*s == '?')
			{
				if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z') || (*p >= '0' && *p <= '9'))
				{
					s++;
					p++;
				}
				else
				{
					return FALSE;
				}

			}
			else  //*s == '*'
			{

				while (*s == '*')
				{
					s++;
				}
				if (!(*s))
				{
					return TRUE;
				}
				while (*s != *p && (abs(*s - *p) != 32))
				{
					p++;
					if (!(*p))
					{
						return FALSE;
					}
				}
			}

		}
	}
	if (*p)
	{
		return FALSE;
	}
	else
	{
		return TRUE;
	}

}

void main(void)
{
	char s[M] = { 0 };
	char p[M] = { 0 };
	int test = FALSE;
	scanf("%s %s", s, p);
	test = equal(s, p);
	printf("%d", test);
}