📄 util.lst
字号:
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
C51 COMPILER V8.02 UTIL 10/17/2006 15:15:28 PAGE 5
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;
C51 COMPILER V8.02 UTIL 10/17/2006 15:15:28 PAGE 6
}
/*
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.(OUT
-PUT)
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++;
C51 COMPILER V8.02 UTIL 10/17/2006 15:15:28 PAGE 7
*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
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 164 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.02 UTIL 10/17/2006 15:15:28 PAGE 8
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -