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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stdlib.c

?? Ports_for_CF5213.zip 接口程序;接口程序;
?? C
字號:
/*
 * File:		stdlib.c
 * Purpose:		Functions normally found in a standard C lib.
 *
 * Notes:		This supports ASCII only!!!
 *
 */

#include "common.h"
#include "stdlib.h"

/****************************************************************/
int
isspace (int ch)
{
	if ((ch == ' ') || (ch == '\t'))	/* \n ??? */
		return TRUE;
	else
		return FALSE;
}

/****************************************************************/
int
isalnum (int ch)
{
	/* ASCII only */
	if (((ch >= '0') && (ch <= '9')) ||
		((ch >= 'A') && (ch <= 'Z')) ||
		((ch >= 'a') && (ch <= 'z')))
		return TRUE;
	else
		return FALSE;
}

/****************************************************************/
int
isdigit (int ch)
{
	/* ASCII only */
	if ((ch >= '0') && (ch <= '9'))
		return TRUE;
	else
		return FALSE;
}

/****************************************************************/
int
isupper (int ch)
{
	/* ASCII only */
	if ((ch >= 'A') && (ch <= 'Z'))
		return TRUE;
	else
		return FALSE;
}

/****************************************************************/
int
strcasecmp (const char *s1, const char *s2)
{
	char	c1, c2;
	int		result = 0;

	while (result == 0)
	{
		c1 = *s1++;
		c2 = *s2++;
		if ((c1 >= 'a') && (c1 <= 'z'))
			c1 = (char)(c1 - ' ');
		if ((c2 >= 'a') && (c2 <= 'z'))
			c2 = (char)(c2 - ' ');
		if ((result = (c1 - c2)) != 0)
			break;
		if ((c1 == 0) || (c2 == 0))
			break;
	}
	return result;
}


/****************************************************************/
int
strncasecmp (const char *s1, const char *s2, int n)
{
	char	c1, c2;
	int		k = 0;
	int		result = 0;

	while ( k++ < n )
	{
		c1 = *s1++;
		c2 = *s2++;
		if ((c1 >= 'a') && (c1 <= 'z'))
			c1 = (char)(c1 - ' ');
		if ((c2 >= 'a') && (c2 <= 'z'))
			c2 = (char)(c2 - ' ');
		if ((result = (c1 - c2)) != 0)
			break;
		if ((c1 == 0) || (c2 == 0))
			break;
	}
	return result;
}

/****************************************************************/
uint32
strtoul (char *str, char **ptr, int base)
{
	unsigned long rvalue;
	int c, err, neg;
	char *endp;
	char *startp;

	rvalue = 0;  err = 0;  neg = 0;

	/* Check for invalid arguments */
	if ((str == NULL) || (base < 0) || (base == 1) || (base > 36))
	{
		if (ptr != NULL)
		{
			*ptr = str;
		}
		return 0;
	}

	/* Skip leading white spaces */
	for (startp = str; isspace(*startp); ++startp)
		;

	/* Check for notations */
	switch (startp[0])
	{
		case '0':
			if ((startp[1] == 'x') || (startp[1] == 'X'))
			{
				if ((base == 0) || (base == 16))
				{
					base = 16;
					startp = &startp[2];
				}
			}
			break;
		case '-':
			neg = 1;
			startp = &startp[1];
			break;
		default:
			break;
	}

	if (base == 0)
		base = 10;

	/* Check for invalid chars in str */
	for ( endp = startp; (c = *endp) != '\0'; ++endp)
	{
		/* Check for 0..9,Aa-Zz */
		if (!isalnum(c))
		{
			err = 1;
			break;
		}

		/* Convert char to num in 0..36 */
		if (isdigit(c))
		{
			c = c - '0';
		}
		else
		{
			if (isupper(c))
			{
				c = c - 'A' + 10;
			}
			else
			{
				c = c - 'a' + 10;
			}
		}

		/* check c against base */
		if (c >= base)
		{
			err = 1;
			break;
		}

		if (neg)
		{
			rvalue = (rvalue * base) - c;
		}
		else
		{
			rvalue = (rvalue * base) + c;
		}
	}

	/* Upon exit, endp points to the character at which valid info */
	/* STOPS.  No chars including and beyond endp are used.        */

	if (ptr != NULL)
		*ptr = endp;

	if (err)
	{
		if (ptr != NULL)
			*ptr = str;
		
		return 0;
	}
	else
	{
		return rvalue;
	}
}

/****************************************************************/
int
strlen (const char *str)
{
	char *s = (char *)str;
	int len = 0;

	if (s == NULL)
		return 0;

	while (*s++ != '\0')
		++len;

	return len;
}

/****************************************************************/
char *
strcat (char *dest, const char *src)
{
	char *dp;
	char *sp = (char *)src;

	if ((dest != NULL) && (src != NULL))
	{
		dp = &dest[strlen(dest)];

		while (*sp != '\0')
		{
			*dp++ = *sp++;
		}
		*dp = '\0';
	}
	return dest;
}

/****************************************************************/
char *
strncat (char *dest, const char *src, int n)
{
	char *dp;
	char *sp = (char *)src;

	if ((dest != NULL) && (src != NULL) && (n > 0))
	{
		dp = &dest[strlen(dest)];

		while ((*sp != '\0') && (n-- > 0))
		{
			*dp++ = *sp++;
		}
		*dp = '\0';
	}
	return dest;
}

/****************************************************************/
char *
strcpy (char *dest, const char *src)
{
	char *dp = (char *)dest;
	char *sp = (char *)src;

	if ((dest != NULL) && (src != NULL))
	{
		while (*sp != '\0')
		{
			*dp++ = *sp++;
		}
		*dp = '\0';
	}
	return dest;
}

/****************************************************************/
char *
strncpy (char *dest, const char *src, int n)
{
	char *dp = (char *)dest;
	char *sp = (char *)src;

	if ((dest != NULL) && (src != NULL) && (n > 0))
	{
		while ((*sp != '\0') && (n-- > 0))
		{
			*dp++ = *sp++;
		}
		*dp = '\0';
	}
	return dest;
}

/****************************************************************/
int
strcmp (const char *s1, const char *s2)
{
	/* No checks for NULL */
	char *s1p = (char *)s1;
	char *s2p = (char *)s2;

	while (*s2p != '\0')
	{
		if (*s1p != *s2p)
			break;

		++s1p;
		++s2p;
	}
	return (*s1p - *s2p);
}

/****************************************************************/
int
strncmp (const char *s1, const char *s2, int n)
{
	/* No checks for NULL */
	char *s1p = (char *)s1;
	char *s2p = (char *)s2;

	if (n <= 0)
		return 0;

	while (*s2p != '\0')
	{
		if (*s1p != *s2p)
			break;

		if (--n == 0)
			break;

		++s1p;
		++s2p;
	}
	return (*s1p - *s2p);
}

/****************************************************************/
void *
memcpy (void *dest, const void *src, unsigned n)
{
	int longs, bytes;
	uint32 *dpl = (uint32 *)dest;
	uint32 *spl = (uint32 *)src;
	uint8  *dpb, *spb;

	if ((dest != NULL) && (src != NULL) && (n > 0))
	{
		bytes = (n & 0x3);
		longs = (n - bytes) >> 2;
	
		while (longs--)
			*dpl++ = *spl++;
		
		dpb = (uint8 *)dpl;
		spb = (uint8 *)spl;
		
		while (bytes--)
			*dpb++ = *spb++;
	}
	return dest;
}

/****************************************************************/
void *
memset (void *s, int c, unsigned n)
{
	/* Not optimized, but very portable */
	unsigned char *sp = (unsigned char *)s;

	if ((s != NULL) && (n > 0))
	{
		while (n--)
		{
			*sp++ = (unsigned char)c;
		}
	}
	return s;
}

/****************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久精品| 国产精品88av| 国产日韩综合av| 色狠狠色狠狠综合| 国产美女一区二区三区| 亚洲午夜久久久久久久久电影院| 2023国产精品自拍| 欧美色手机在线观看| 不卡电影免费在线播放一区| 全国精品久久少妇| 亚洲永久免费视频| 中文一区二区完整视频在线观看| 日韩一区二区免费电影| 色婷婷香蕉在线一区二区| 国产98色在线|日韩| 韩国视频一区二区| 日韩国产欧美三级| 亚洲午夜免费福利视频| 亚洲人成网站色在线观看| 国产亚洲精品免费| 精品国产自在久精品国产| 欧美日韩国产精品成人| 色播五月激情综合网| www.色精品| 大白屁股一区二区视频| 黑人精品欧美一区二区蜜桃| 久久se精品一区精品二区| 色香蕉久久蜜桃| 成人夜色视频网站在线观看| 韩国成人精品a∨在线观看| 青青草视频一区| 美女视频一区二区| 日本不卡不码高清免费观看| 日本成人在线电影网| 亚洲电影中文字幕在线观看| 亚洲愉拍自拍另类高清精品| 亚洲午夜久久久久久久久电影网 | 欧美激情一区二区三区全黄| 精品久久国产字幕高潮| 日韩欧美一区在线| 欧美www视频| 久久亚洲综合av| 精品久久久久久久久久久院品网| 欧美一区二区三区免费观看视频| 这里只有精品免费| 日韩一区二区三区四区| 欧美大肚乱孕交hd孕妇| 亚洲精品一区二区精华| 国产亚洲欧美中文| 国产精品国产三级国产有无不卡| 亚洲视频电影在线| 亚洲自拍偷拍av| 手机精品视频在线观看| 蜜桃av一区二区| 国产传媒日韩欧美成人| 成人激情动漫在线观看| 色欧美片视频在线观看| 欧美日韩美少妇| 欧美不卡在线视频| 国产亚洲成av人在线观看导航| 国产欧美一区二区精品性| 国产精品久久久久永久免费观看| 成人欧美一区二区三区视频网页| 一区二区三区四区亚洲| 日日夜夜免费精品视频| 国产一区二区三区免费播放| 99国产欧美另类久久久精品| 欧美日韩久久久| 久久综合色8888| 亚洲欧洲一区二区三区| 亚洲成av人**亚洲成av**| 久久av资源站| 99精品视频在线观看免费| 欧美精选午夜久久久乱码6080| 久久免费精品国产久精品久久久久| 最新中文字幕一区二区三区| 亚洲一区二区在线播放相泽| 久久不见久久见免费视频7| 99久久精品免费看国产| 欧美一区二区福利视频| 国产精品美女久久福利网站| 亚洲午夜电影网| 国产乱码精品一区二区三区五月婷| av一区二区三区四区| 91精品国产乱码| 国产精品毛片a∨一区二区三区| 亚洲午夜电影网| 成人精品免费视频| 91精品国产一区二区三区| 国产日韩欧美不卡| 亚洲二区视频在线| 不卡免费追剧大全电视剧网站| 欧美一区二区精品| 亚洲欧美另类小说| 国产麻豆9l精品三级站| 欧美日韩国产另类一区| 最新国产成人在线观看| 韩国成人在线视频| 91精品黄色片免费大全| 亚洲女与黑人做爰| 精品一区二区三区久久| 欧美日韩精品免费| 亚洲天堂免费在线观看视频| 国内精品国产成人国产三级粉色 | 蜜臀av一级做a爰片久久| av不卡免费电影| 久久亚洲欧美国产精品乐播| 日韩精品一区第一页| 91亚洲精品一区二区乱码| 国产亚洲一区二区三区四区| 免费成人av在线播放| 欧美性xxxxxxxx| 亚洲日本乱码在线观看| 国产不卡在线一区| 精品国产乱码久久久久久久| 视频一区二区欧美| 欧美色老头old∨ideo| 亚洲人午夜精品天堂一二香蕉| 激情偷乱视频一区二区三区| 欧美精品123区| 亚洲成a人在线观看| 在线看国产日韩| 一区二区三区丝袜| 色婷婷av一区| 亚洲黄色免费电影| 91久久精品网| 亚洲婷婷综合久久一本伊一区| 成人av在线电影| 国产精品免费视频网站| 国产成人一区在线| 国产欧美精品国产国产专区| 国产一级精品在线| 国产亚洲一区二区三区| 国产成人综合亚洲网站| 欧美国产日韩精品免费观看| 成人午夜在线视频| 国产精品每日更新在线播放网址| www.久久久久久久久| 综合欧美一区二区三区| 91论坛在线播放| 亚洲自拍与偷拍| 在线播放欧美女士性生活| 日本视频一区二区三区| 日韩三级视频在线观看| 狠狠网亚洲精品| 国产精品久久午夜| 97se亚洲国产综合自在线观| 亚洲精品成人悠悠色影视| 欧美三级视频在线播放| 日韩二区在线观看| 精品国产一区二区精华| 国产成人av一区| 亚洲图片欧美激情| 欧美影院精品一区| 免费不卡在线视频| 国产欧美一区二区三区网站| 成人午夜激情片| 一区二区三区日韩精品视频| 欧美高清视频不卡网| 极品销魂美女一区二区三区| 欧美韩国一区二区| 色综合久久88色综合天天免费| 午夜欧美大尺度福利影院在线看| 欧美一级黄色片| 国产91在线|亚洲| 亚洲国产精品久久久久秋霞影院 | 国产亚洲一二三区| 91影视在线播放| 日本人妖一区二区| 国产精品入口麻豆原神| 欧美伊人久久大香线蕉综合69| 麻豆专区一区二区三区四区五区| 日本一区二区三区国色天香 | 国产日韩欧美精品综合| 色综合网色综合| 激情综合网天天干| 亚洲欧美日韩国产手机在线| 日韩三级免费观看| 一本高清dvd不卡在线观看| 日韩二区在线观看| 亚洲欧美在线观看| 91精品国产乱| 一本大道久久精品懂色aⅴ| 欧美aaaaa成人免费观看视频| 国产精品丝袜一区| 欧美一区二区三区四区五区| 成人激情小说乱人伦| 日本vs亚洲vs韩国一区三区| 国产精品久久久久久久久久免费看 | 不卡一区二区在线| 青椒成人免费视频| 亚洲色欲色欲www| 久久综合久久综合久久综合| 色94色欧美sute亚洲线路一ni | 欧美精品一区二区三区很污很色的 | 日韩高清国产一区在线| **欧美大码日韩| 国产午夜精品久久久久久久| 欧美日本国产视频| 97国产一区二区|