⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strpat.c

📁 mips架构的bootloader,99左右的版本 但源代码现在没人更新了
💻 C
字号:
/************************************************************* * File: lib/strpat.c * Purpose: Part of C runtime library * Author: Phil Bunce (pjb@carmel.com) * Revision History: *	970304	Start of revision history */#include <stdio.h>#include <string2.h>#ifndef MAXLN#define MAXLN 400#endif#define BANCHOR		(0x80|'^')#define EANCHOR		(0x80|'$')#define strNcpy(x,y,z)	strncpy(x,y,z),(x)[z]=0/*************************************************************  int strpat(p,pat) *	return 1 if pat matches p, else 0; wildcards * and ? */int strpat(s1,s2)unsigned char *s1,*s2;{unsigned char *p,*pat;unsigned char *t,tmp[MAXLN];unsigned char src1[MAXLN],src2[MAXLN];if (!s1 || !s2) return(0);p = src1; pat = src2;*p++ = BANCHOR; while (*s1) *p++ = *s1++; *p++ = EANCHOR; *p = 0;*pat++ = BANCHOR; while (*s2) *pat++ = *s2++; *pat++ = EANCHOR; *pat = 0;p = src1; pat = src2;for (;*p && *pat;) {	if (*pat == '*') {		pat++;		for (t=pat;*t && *t != '*' && *t != '?';t++) ;		strNcpy(tmp,pat,t-pat);		pat = t;		t = (unsigned char *)strposn(p,tmp);		if (t == 0) return(0);		p = t + strlen(tmp);		}	else if (*pat == '?'|| *pat == *p) { pat++; p++; }	else return(0);	}if (!*p && !*pat) return(1);if (!*p && *pat == '*' && !*(pat+1)) return(1);return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -