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

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

?? util.c

?? 硬件協議棧芯片w3100a的DHCP實現
?? C
字號:
/*
###############################################################################
Wiznet.
5F Simmtech Bldg., 228-3, Nonhyun-dong, Kangnam-gu,  
Seoul, Korea

(c) Copyright 2002, Wiznet, Seoul, Korea


File Name : UTIL.C

Version : 1.0

Created : 2001/10/05

Description : It's implemented with useful functions, these functions are several converting and referring to String.
              Almost functions in this are offered by Keil Compiler.
              If you want not to use, Include that Library.
  
Modified History 
		Modified : 2002/03/15             
		Description : 
		Modified : 2002/10/20
		Description : Version Up (V2.0)
		              Add ITOA()
			      Add ValidATOI()
			      Add CmpStr()
			      Add StrTrim()
			      Add FindLast()
			      Add StrNChr()

###############################################################################
*/



/*
###############################################################################
Include Part
###############################################################################
*/

#include "reg51.h"
#include "util.h"
#include "serial.h"


/*
###############################################################################
Define Part
###############################################################################
*/




/*
###############################################################################
Grobal Variable Definition Part
###############################################################################
*/



/*
###############################################################################
Local  Variable Definition Part
###############################################################################
*/



/*
###############################################################################
Function Implementation Part
###############################################################################
*/

/*
Description   :  Convert Hex(0-F) to Character
Argument      :  c -  Hex( 0x00'~0x0F)to convert into character (INPUT)
Note          :  
*/
UCHAR D2C(char c)
{
	if( c >= 0 && c <= 9)
		return '0' + c;
	if( c >= 10 && c <= 15)
		return 'A' + c - 10;
	return c;	
}

/*
Description   :  Convert Character into Hex
Argument      :  c - character( '0'~'F') to convert into Hex(INPUT)

Note          :  
*/
char C2D(UCHAR c)
{
	if( c >= '0' && c <= '9')
		return c - '0';
	if( c >= 'a' && c <= 'f')
		return 10 + c -'a';
	if( c >= 'A' && c <= 'F')
		return 10 + c -'A';
	return c;
}

/*
Description   :  Convert Character string into integer number.
Argument      :  str - Source string (INPUT)
                 base - Base of value; must be in the range 2 ~ 16
Return Value  :  Value of Number to be converted 
Note          :  
*/
UINT ATOI(UCHAR* str,char base)
{
        UINT num = 0;
        while (*str !=0)
                num = num * base + C2D(*str++);
	return num;
}	


/*
###############################################################################
Unused Function Implementation Part
###############################################################################
*/

#ifndef __UTIL_UNUSED
/*
Description   :   Find beginning of character in string  
Argument      :  src - source string (INPUT)
                 tag -  Character to find in source string (INPUT)
Note          :  
*/
UCHAR * FindFirstStr(UCHAR *src,UCHAR * tag)
{
	UINT i;
	UCHAR * tsrc = src;
	
FIND:
	if((tsrc = FindFirst(tsrc,tag[0])) !=0)
	{
		for(i=1; tag[i] != '\0' ; i++)
		{
			if(*(tsrc+i) == '\0') return 0;
			if( *(tag + i) != *(tsrc+ i) )
			{
				tsrc++;
				goto FIND;
			}
		}
		return tsrc;		
	}
	return 0;
}


/*
Description   :  Cascade 'tag' in the end of 'str' string.
Argument      :  str - source string  (INPUT, OUTPUT)
Note          :  
*/
void MemCat(UCHAR* str, UCHAR* tag)
{
	while(*str !='\0') str++;
	while(*tag !='\0') *str++ = *tag++;
	*str='\0';
}

/*
Description   :  Find last location of character in string  
Argument      :  src - source string (INPUT)
                   c -  Character to find in source string (INPUT)
Note          :  Version 2.0
*/
UCHAR * FindLast(UCHAR * src,char c)
{
	
	UCHAR * ret = 0;
	while(*src != '\0')
	{
		if(*src == c) ret = src;
		src++;
	}
	return ret;
}

/*
Description   :  Get count 'c' character in str
Argument      :  src - Source string (INPUT)
                 c - character to be found 
Return Value  :  Count
Note          :  Version 2.0
*/
int StrNChr(char* src, char c)
{
	int ret = 0;
	while(*src != '\0')
		if(*src++ == c) ret++;
	return ret;	
}

/*
Description   :  Convert Decimal Number into string.
Argument      :  str - pointer to string to be returned  
                 base - Base of value; must be in the range 2 ~ 16
Return Value  :  pointer to string
Note          :  Version 2.0
*/
char* ITOA(u_int value,char* str,char base)
{
	char c;
	char* tstr = str;
	char* ret = str;
	if(value == 0) *str++='0';
	while(value > 0)
	{
		*str++ = D2C(value%base);
		value /= base;
	}
	*str-- ='\0';
	while(tstr < str )
	{
		c = *tstr;
		*tstr++ = *str;	
		*str-- = c;
	}
	return ret;
}
/*
Description   :  Convert Character string to (hexa-)decimal.
Argument      :  str - Source string (INPUT)
                 base - Base of value; must be in the range 2 ~ 16 
		 ret - Value of Number to be converted
Return Value  :  Verify digit character in str, 
		 Verify success : 1
                        fail    : -1
Note          :  Version 2.0
*/
char ValidATOI(char* str, int base, int* ret)
{
	char c;
	char* tstr = str;
	if(str == 0 || *str == '\0') return -1;
	while(*tstr != '\0')
	{
		c = C2D(*tstr);
		if( c >= 0 && c < base) tstr++;
		else    return -1;
	}
	
	*ret = ATOI(str,base);
	return 1;
}


/*
Description   :  Cut out whitespace in src
Argument      :  src - Source string (INPUT)
Return Value  :  Trimed string
Note          :  Version 2.0
*/
void StrTrim(char* src)
{
	int size = StrLen(src);
	char c;
	while(size > 0)
	{
		c = *(src+size);
		if( c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\b')
			*(src+size) = 0;
		else break;
		size--;
	}
}

/*
Description   :  Compare source string to destination source
Argument      :  str - Source string (INPUT)
                 dst - destination string
Return Value  :  src > dst : 1
		 src = dst : 0
                 src < dst : -1
Note          :  Version 2.0
*/
int CmpStr(char* src, char* dst)
{
	while(*src != '\0')
	{
		if(*src > *dst)	return 1;
		else if(*src < *dst)	return -1;
		src++;
		dst++;
	}
	if(*dst != '\0') return 1;
	return 0;
}

/*
Description   :  Replace with assigned character in Character String 
Argument      :  src - character string to replace specific-character(INPUT, OUTPUT)
                 s - Character to be placed  
		 d - replacement character
Return Value  :  
Note          :  
*/
void ReplaceAll(UCHAR * src,char s,char d)
{
	while(*src != '\0')
	{
                if(*src == s)	*src = d;
		src++;
	}
}

/*
Description   : Turncate character string by Delimeter
Argument      :  src - character string to be Tokenize (INPUT)
	         sep - Delimeter character  (INPUT)
                 tok - Copy string in front of Delimeter with character string Pointer to be assigned.(OUTPUT)

Return Value  :Pointer to assign beginning of tag in original string Delimeter
Note          :  Version 2.0
*/
UCHAR * StrTok(UCHAR* src,char sep,UCHAR* tok)
{
	UCHAR * tsrc;
	if((tsrc = FindFirst(src,sep)) != 0)
	{
		while(src != tsrc)	*tok++ = *src++;
		*tok = '\0';
	}
	else
	{
		MemCopy(tok,src);
		return 0 ;
	}
	while(*src == sep)src++;
	if(*src == '\0')
	{
		return 0;
	}
	return src;
}


/*
Description   :  Copy src string to dst.
Argument      :  src -Source string (INPUT)
                 dst -  Taget string (OUTPUT)
Return Value  :  Length of copied string
Note          :  
*/
UINT MemCopy(UCHAR *dst,UCHAR * src)
{
	UINT i=0;
	while(*src !=0) *dst++ = *src++, i++;
	*dst = '\0';
	return i;
}

/*
Description   :  Find first location of character in string  
Argument      :  src - source string (INPUT)
                   c -  Character to find in source string (INPUT)
Note          :  
*/
UCHAR * FindFirst(UCHAR * src,char c)
{
	
	while(*src != '\0')
	{
		if(*src == c) 	return src;
		src++;
	}
	return 0;
}


/*
Description   :  Convert small letter to capital letter in string  
Argument      :  src -  source string (INPUT)
Return Value  :  
Note          :  
*/
void MakeUpper(UCHAR* src)
{
	while(*src != '\0')
	{
		if(*src >= 'a' && *src <= 'z')	*src = *src + 'A' - 'a';
		src++;
	}
}

/*
Description   : Find  out Length of string
Return Value  :  Length of source string
Note          :  
*/
UINT StrLen(UCHAR* str)
{
	UINT i = 0;
	while(*str++ != '\0') i++;
	return i;
}


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性做爰猛烈叫床潮| 自拍偷拍亚洲综合| 中文字幕在线不卡| 麻豆91精品视频| 99久久国产综合精品女不卡| 日韩美一区二区三区| 亚洲自拍偷拍网站| 国产精品一区二区在线播放 | 不卡视频在线观看| 欧美一区二区三级| 亚洲成人免费视| 欧美自拍丝袜亚洲| 亚洲欧洲成人自拍| 国产精品亚洲第一| 精品美女在线播放| 免费的成人av| 欧美一卡二卡在线观看| 日韩精品一卡二卡三卡四卡无卡| 91影视在线播放| 国产精品人妖ts系列视频| 日韩国产在线观看一区| 色老综合老女人久久久| 国产精品九色蝌蚪自拍| 国产成人免费在线| 久久久久国产精品厨房| 韩国成人精品a∨在线观看| 91精品一区二区三区久久久久久| 亚洲综合免费观看高清完整版在线 | 欧美韩国日本不卡| 国产精品中文有码| 久久香蕉国产线看观看99| 毛片一区二区三区| 精品国产乱码久久| 精品亚洲欧美一区| 久久综合国产精品| 国产一区激情在线| 久久精品网站免费观看| 国产一本一道久久香蕉| 久久久精品日韩欧美| 国产精品亚洲一区二区三区妖精| 亚洲精品一区二区三区四区高清 | 国产在线精品国自产拍免费| 日韩一区二区精品葵司在线| 久久精品国产99国产| 欧美精品一区二区三区蜜桃视频| 国产一区二区三区| 国产精品毛片高清在线完整版| 成人国产一区二区三区精品| 亚洲天堂免费在线观看视频| 欧美视频自拍偷拍| 热久久免费视频| 亚洲国产精品成人综合色在线婷婷| av在线不卡免费看| 亚洲午夜三级在线| 精品久久一区二区| av电影天堂一区二区在线观看| 一区二区成人在线观看| 欧美一个色资源| 国产91清纯白嫩初高中在线观看| 亚洲欧洲日韩女同| 欧美精品久久久久久久多人混战 | 国产欧美精品国产国产专区| 99精品国产热久久91蜜凸| 香蕉乱码成人久久天堂爱免费| 欧美一级黄色片| 99九九99九九九视频精品| 丝袜亚洲另类欧美综合| 国产精品久久久久影院色老大| 欧美日韩视频在线观看一区二区三区| 毛片不卡一区二区| 亚洲人成网站在线| 精品美女在线播放| 欧美性猛交xxxx黑人交| 国产麻豆视频一区二区| 亚洲一区国产视频| 久久久精品影视| 欧美丰满美乳xxx高潮www| 国产91清纯白嫩初高中在线观看| 天堂午夜影视日韩欧美一区二区| 久久精品视频一区| 91精品国产综合久久精品图片| 国产+成+人+亚洲欧洲自线| 五月婷婷久久综合| 综合激情成人伊人| 国产午夜久久久久| 日韩美女天天操| 欧美性视频一区二区三区| 成人91在线观看| 国产精品影视在线观看| 免费在线成人网| 亚洲网友自拍偷拍| 亚洲欧美区自拍先锋| 欧美激情综合在线| 精品国精品自拍自在线| 欧美日韩久久一区二区| 色偷偷一区二区三区| 丰满少妇在线播放bd日韩电影| 日韩va亚洲va欧美va久久| 亚洲成a人片在线不卡一二三区 | 久久精品欧美日韩精品| 日韩精品中文字幕一区二区三区| 欧美色网一区二区| 色94色欧美sute亚洲线路二| 91在线porny国产在线看| 懂色av一区二区三区免费观看| 国产一区二区影院| 国产资源在线一区| 美腿丝袜亚洲一区| 奇米影视在线99精品| 日韩不卡在线观看日韩不卡视频| 婷婷丁香激情综合| 日本vs亚洲vs韩国一区三区| 婷婷开心久久网| 日本欧美一区二区在线观看| 美女网站视频久久| 精品在线一区二区| 久久99精品国产麻豆婷婷| 久久av资源网| 国产原创一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 麻豆极品一区二区三区| 精品午夜一区二区三区在线观看| 精品一区二区在线视频| 国产精品资源在线观看| 国产91露脸合集magnet| 成人一级片网址| 色婷婷亚洲综合| 欧美熟乱第一页| 日韩女同互慰一区二区| 专区另类欧美日韩| 亚洲日韩欧美一区二区在线| 亚洲视频一区二区在线| 亚洲综合偷拍欧美一区色| 亚洲.国产.中文慕字在线| 免费成人在线播放| 粉嫩绯色av一区二区在线观看| 成人国产电影网| 91精彩视频在线| 欧美一区二区三区喷汁尤物| 日韩精品一区二区三区视频在线观看 | 亚洲综合色视频| 免费人成在线不卡| 成人美女视频在线观看18| 91免费视频网| 69av一区二区三区| 久久精品视频一区| 亚洲国产你懂的| 国产一区二区女| 欧美色倩网站大全免费| 日韩一区二区中文字幕| 国产精品久久久久久久久免费樱桃 | 成人深夜在线观看| 欧美日韩国产一区| 久久视频一区二区| 亚洲自拍偷拍欧美| 国产乱码精品一区二区三区av | 色婷婷av一区二区三区gif | 久久精品国产澳门| 色视频欧美一区二区三区| 日韩女优毛片在线| 亚洲精品少妇30p| 国产乱码精品一区二区三| 日本精品一级二级| 久久一二三国产| 午夜影院久久久| 不卡一区在线观看| 精品久久久久一区二区国产| 成人免费一区二区三区视频| 六月丁香综合在线视频| 色94色欧美sute亚洲线路一ni| 久久综合av免费| 亚洲二区在线观看| eeuss鲁一区二区三区| 精品日韩av一区二区| 亚洲一区二区偷拍精品| 成人晚上爱看视频| 精品久久免费看| 秋霞午夜鲁丝一区二区老狼| 91精彩视频在线| 亚洲欧洲另类国产综合| 国产一区二区三区视频在线播放| 欧美日韩一区二区三区四区| 亚洲美女视频在线| 成人福利视频在线| 国产日韩欧美综合在线| 韩国三级电影一区二区| 欧美电影影音先锋| 亚洲最新在线观看| 91丝袜美腿高跟国产极品老师 | 欧美日韩国产小视频在线观看| 国产欧美日韩另类一区| 国产精品亚洲人在线观看| 日韩欧美中文字幕精品| 日本欧美大码aⅴ在线播放| 6080国产精品一区二区| 舔着乳尖日韩一区| 91精品久久久久久久久99蜜臂| 亚洲五码中文字幕| 欧美挠脚心视频网站| 日本欧美一区二区三区乱码|