亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htstring.c

?? firtext搜索引擎源碼
?? C
字號:
/*								     HTString.c**	DYNAMIC STRING UTILITIES****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTString.c,v 2.46 1999/09/10 00:44:31 raff Exp $****	Original version came with listserv implementation.**	Version TBL Oct 91 replaces one which modified the strings.**	02-Dec-91 (JFG) Added stralloccopy and stralloccat**	23 Jan 92 (TBL) Changed strallocc* to 8 char HTSAC* for VM and suchlike**	 6 Oct 92 (TBL) Moved WWW_TraceFlag in here to be in library**       9 Oct 95 (KR)  fixed problem with double quotes in HTNextField**	26 Nov 96 (EGP) moved HTTrace stuff to HTTrace.c*//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTString.h"					 /* Implemented here *//* ------------------------------------------------------------------------- *//*	Strings of any length**	---------------------*/PUBLIC int strcasecomp (const char * a, const char * b){    int diff;    for( ; *a && *b; a++, b++) {	if ((diff = TOLOWER(*a) - TOLOWER(*b)))	    return diff;    }    if (*a) return 1;			/* a was longer than b */    if (*b) return -1;			/* a was shorter than b */    return 0;				/* Exact match */}/*	With count limit**	----------------*/PUBLIC int strncasecomp (const char * a, const char * b, int n){	const char *p =a;	const char *q =b;		for(p=a, q=b;; p++, q++) {	    int diff;	    if (p == a+n) return 0;	/*   Match up to n characters */	    if (!(*p && *q)) return *p - *q;	    diff = TOLOWER(*p) - TOLOWER(*q);	    if (diff) return diff;	}	/*NOTREACHED*/}/*** strcasestr(s1,s2) -- like strstr(s1,s2) but case-insensitive.*/PUBLIC char * HTStrCaseStr (char * s1, char * s2){    char * ptr = s1;    if (!s1 || !s2 || !*s2) return s1;    while (*ptr) {	if (TOUPPER(*ptr) == TOUPPER(*s2)) {	    char * cur1 = ptr + 1;	    char * cur2 = s2 + 1;	    while (*cur1 && *cur2 && TOUPPER(*cur1) == TOUPPER(*cur2)) {		cur1++;		cur2++;	    }	    if (!*cur2)	return ptr;	}	ptr++;    }    return NULL;}/*** tailcomp(s1,s2) -- like strcmp(s1,s2) but match s1 with the tail of s2**                    (used for cookie domain comparison)*/PUBLIC int tailcomp(const char * s1, const char * s2){    int l1 = strlen(s1);    int l2 = strlen(s2);    if (l1 < l2)        s2 += (l2 - l1);    return strcmp(s1, s2);}PUBLIC int tailcasecomp(const char * s1, const char * s2){    int l1 = strlen(s1);    int l2 = strlen(s2);    if (l1 < l2)        s2 += (l2 - l1);    return strcasecomp(s1, s2);}/*	Allocate a new copy of a string, and returns it*/PUBLIC char * HTSACopy (char ** dest, const char * src){  if (*dest) HT_FREE(*dest);  if (! src)    *dest = NULL;  else {    if ((*dest  = (char  *) HT_MALLOC(strlen(src) + 1)) == NULL)        HT_OUTOFMEM("HTSACopy");    strcpy (*dest, src);  }  return *dest;}/*	String Allocate and Concatenate*/PUBLIC char * HTSACat (char ** dest, const char * src){  if (src && *src) {    if (*dest) {      int length = strlen (*dest);      if ((*dest  = (char  *) HT_REALLOC(*dest, length + strlen(src) + 1)) == NULL)          HT_OUTOFMEM("HTSACat");      strcpy (*dest + length, src);    } else {      if ((*dest  = (char  *) HT_MALLOC(strlen(src) + 1)) == NULL)          HT_OUTOFMEM("HTSACat");      strcpy (*dest, src);    }  }  return *dest;}PUBLIC char * StrAllocMCopy (char ** dest, ...){    va_list pArgs;    char * p, * argp;    /* How much space do we need? */    int needed = 0;    va_start(pArgs, dest);    while ((p = va_arg(pArgs, char *)) != NULL) 	needed += strlen(p);    va_end(pArgs);    if (*dest) HT_FREE(*dest);    if (needed) {	/* Allocate that amount of memory */	if ((*dest = (char *) HT_MALLOC(needed + 1)) == NULL)	    HT_OUTOFMEM("HTStrCpy");	p = *dest;	/* Fill the string */	va_start(pArgs, dest);	while ((argp = va_arg (pArgs, char *)) != NULL) {	    strcpy(p, argp);	    p += strlen(argp);	}	va_end (pArgs);    }    return *dest;}PUBLIC char * StrAllocMCat (char ** dest, ...){    va_list pArgs;    char * p, * argp;    /* How much space do we need? */    int needed = 0;    va_start(pArgs, dest);    while ((p = va_arg(pArgs, char *)) != NULL) 	needed += strlen(p);    va_end(pArgs);    if (needed) {	/* (Re) Allocate the amount of memory needed */	if (*dest) {	    int dest_len = strlen(*dest);	    if ((*dest = (char *) HT_REALLOC(*dest, dest_len + needed + 1)) == NULL)		HT_OUTOFMEM("HTStrCat");	    p = *dest + dest_len;	} else {	    if ((*dest = (char  *) HT_MALLOC(needed + 1)) == NULL)		HT_OUTOFMEM("HTStrCat");	    p = *dest;	}	/* Fill the string */	va_start(pArgs, dest);	while ((argp = va_arg (pArgs, char *)) != NULL) {	    strcpy(p, argp);	    p += strlen(argp);	}	va_end (pArgs);    }    return *dest;}/*	String Matching**	---------------**	String comparison function for file names with one wildcard * in the**	template. Arguments are:****	tmpl	is a template string to match the name against.**		agaist, may contain a single wildcard character * which**		matches zero or more arbitrary characters.**	name	is the name to be matched agaist the template.****	return:	- Empty string if perfect match**		- pointer to part matched by wildcard if any**		- NULL if no match*/PUBLIC char * HTStrMatch (const char * tmpl, const char * name){    while (*tmpl && *name && *tmpl==*name) tmpl++, name++;    return ((!*tmpl && !*name) || *tmpl=='*') ? (char *) name : (char *) NULL;}    PUBLIC char * HTStrCaseMatch (const char * tmpl, const char * name){    while (*tmpl && *name && TOUPPER(*tmpl)==TOUPPER(*name)) tmpl++, name++;    return ((!*tmpl && !*name) || *tmpl=='*') ? (char *) name : (char *) NULL;}    /*	Strip white space off a string**	------------------------------**	Return value points to first non-white character, or to 0 if none.**	All trailing white space is OVERWRITTEN with zero.*/PUBLIC char * HTStrip (char * s){    if (s) {	char * p=s;	for(p=s;*p;p++);		/* Find end of string */	for(p--;p>=s;p--) {	    if (isspace((int) *p))		*p=0;			/* Zap trailing blanks */	    else		break;	}	while (isspace((int) *s)) s++;	/* Strip leading blanks */    }    return s;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品区一区二区三区| 欧美一级在线视频| 91在线播放网址| 国产成人免费视频 | 成人精品一区二区三区中文字幕| 国产成人aaa| 欧美精品一二三| 精品免费视频一区二区| 国产精品二三区| av激情综合网| 欧美日韩三级在线| 国产拍揄自揄精品视频麻豆| 国产精品传媒在线| 日韩极品在线观看| 99v久久综合狠狠综合久久| 欧美精三区欧美精三区| 国产视频亚洲色图| 亚洲一级不卡视频| 国产成a人亚洲精| 欧美日韩久久久| 国产精品麻豆久久久| 五月天亚洲婷婷| 99久久精品免费看国产| 欧美成人激情免费网| 色综合天天做天天爱| 久久久久久久久久久99999| 秋霞午夜av一区二区三区| 欧美伊人久久久久久久久影院 | 国产精品一区二区黑丝| 欧美一区二区三区免费视频| 石原莉奈在线亚洲二区| 在线播放91灌醉迷j高跟美女| 亚洲一区二区视频在线观看| 91国产免费观看| 亚洲国产中文字幕在线视频综合| 在线亚洲欧美专区二区| 亚洲国产综合在线| 欧美男同性恋视频网站| 日本最新不卡在线| 精品精品国产高清a毛片牛牛| 久久91精品国产91久久小草| 国产亚洲欧美中文| av在线一区二区三区| 日韩毛片精品高清免费| 欧美在线观看视频一区二区| 亚洲国产中文字幕| 欧美精品丝袜中出| 日日夜夜精品视频天天综合网| 欧美日韩另类一区| 韩国一区二区三区| 久久久久久一二三区| 菠萝蜜视频在线观看一区| 亚洲精品福利视频网站| 欧美日韩亚洲综合一区二区三区 | 亚洲一区二区三区在线看| 欧美色视频一区| 久久99久久久久久久久久久| 久久视频一区二区| 91一区二区在线观看| 日韩主播视频在线| 国产午夜精品久久久久久免费视| 91性感美女视频| 蜜桃精品视频在线| 国产精品妹子av| 5566中文字幕一区二区电影| 国产成人鲁色资源国产91色综| 亚洲欧美日韩精品久久久久| 欧美一区二区免费| 97精品超碰一区二区三区| 亚洲国产精品久久不卡毛片 | 亚洲欧美在线另类| 337p亚洲精品色噜噜噜| 成人小视频在线观看| 亚洲超碰精品一区二区| 国产三级欧美三级| 精品视频在线看| 成人av午夜电影| 另类人妖一区二区av| 国产精品免费丝袜| 日韩欧美一区电影| 91极品视觉盛宴| 成人午夜视频在线观看| 日本成人在线电影网| 中文字幕一区二区三区在线播放| 日韩一区二区在线播放| 一本久道中文字幕精品亚洲嫩| 久久99久久久久| 亚洲成av人片| 亚洲精品视频免费观看| 久久精品一区二区三区不卡| 欧美精品123区| 一本色道久久加勒比精品| 粉嫩13p一区二区三区| 精品一二线国产| 天堂蜜桃91精品| 一区二区三区在线不卡| 国产精品久久久一本精品| 欧美成人午夜电影| 日韩一级视频免费观看在线| 欧美性生活影院| 在线观看一区日韩| 国产91对白在线观看九色| 精品一区二区三区的国产在线播放| 亚洲国产精品久久不卡毛片| 亚洲欧美另类小说视频| 国产喂奶挤奶一区二区三区| 欧美精品一区二区三区在线播放 | 色一区在线观看| 成人h版在线观看| 成人免费黄色在线| 丰满少妇久久久久久久| 国产不卡视频在线观看| 国产剧情在线观看一区二区| 精品一区二区免费在线观看| 国产乱子伦一区二区三区国色天香| 青青草国产成人av片免费| 日韩成人一区二区| 免费精品99久久国产综合精品| 午夜电影一区二区| 日本不卡一二三| 久久成人av少妇免费| 麻豆精品国产传媒mv男同| 免播放器亚洲一区| 国产在线精品一区二区三区不卡| 精品制服美女久久| 国产伦精品一区二区三区在线观看| 国产精品456| 成人高清免费观看| 一本高清dvd不卡在线观看 | 亚洲国产精品影院| 亚洲成人综合网站| 日韩国产欧美三级| 国产在线麻豆精品观看| 高清不卡在线观看| 色欧美乱欧美15图片| 5月丁香婷婷综合| 国产亚洲va综合人人澡精品| 国产精品成人一区二区三区夜夜夜 | 日韩精品久久理论片| 蜜臀精品一区二区三区在线观看 | 亚洲国产精品天堂| 日本不卡不码高清免费观看| 久久se这里有精品| 国产东北露脸精品视频| 欧美性感一区二区三区| 精品成人在线观看| 中文字幕日韩一区二区| 视频一区二区三区中文字幕| 精品一区二区三区免费视频| www.欧美色图| 日韩一区二区三区高清免费看看 | 日韩丝袜美女视频| 国产精品卡一卡二卡三| 亚洲成人激情av| 国产精品一区二区久久精品爱涩| 91久久免费观看| 亚洲精品一区二区三区影院| 中文字幕中文字幕一区二区| 日韩电影在线看| 91在线一区二区| 久久影音资源网| 香蕉久久一区二区不卡无毒影院| 国产成人自拍网| 欧美一区二区视频网站| 椎名由奈av一区二区三区| 黄色成人免费在线| 欧美日韩国产一级二级| 中文字幕一区二区三| 捆绑调教美女网站视频一区| 91福利在线导航| 中文av字幕一区| 美腿丝袜在线亚洲一区| 色综合天天综合给合国产| 欧美一区二区福利在线| 亚洲综合免费观看高清完整版| 国产福利一区在线| 欧美电影影音先锋| 一区二区三区在线观看国产| 成人黄色电影在线| 久久久久久久久97黄色工厂| 午夜精品在线视频一区| 99久久99久久综合| 国产精品免费av| 国产a区久久久| 久久日韩精品一区二区五区| 青青青伊人色综合久久| 91麻豆精品国产91久久久久久| 中文字幕中文字幕一区| 国产成人精品免费| 久久久久国产精品厨房| 久久91精品久久久久久秒播| 日韩视频在线一区二区| 日本中文字幕不卡| 欧美人与z0zoxxxx视频| 亚洲一区在线观看免费 | 久久男人中文字幕资源站| 久久99久久99| 精品精品国产高清一毛片一天堂| 激情图片小说一区| 久久夜色精品一区|