返回ch字符在sign数组中的序号
int get_index_of_signs ( char ch)
{
if ( ch >= '0' && ch <= '9' )
{
return ch - '0' ;
}
if ( ch >= 'A' && ch <= 'F' )
{
return ch - 'A' + 10 ;
}
if ( ch >= 'a' && ch <= 'f' )
{
return ch - 'a' + 10 ;
}
return - 1 ;
}
十六进制数转换为十进制数
int hex_to_dec ( char * source)
{
int sum = 0 ;
int t = 1 ;
int i, len;
len = strlen ( source) ;
for ( i = len - 1 ; i >= 0 ; i-- )
{
sum + = t * get_index_of_signs ( * ( source + i) ) ;
t * = 16 ;
}
return sum;
}
把ASCII字符转换为16进制
unsigned char CharToHex ( unsigned char bHex)
{
if ( ( bHex>= 0 ) && ( bHex<= 9 ) )
bHex + = 0x30 ;
else if ( ( bHex>= 10 ) && ( bHex<= 15 ) )
bHex + = 0x37 ;
else bHex = 0xff ;
return bHex;
}
把16进制转换为ASCII字符
unsigned char HexToChar ( unsigned char bChar)
{
if ( ( bChar>= 30 ) && ( bChar<= 39 ) )
bChar - = 30 ;
else if ( ( bChar>= 41 ) && ( bChar<= 46 ) )
bChar - = 31 ;
else if ( ( bChar>= 61 ) && ( bChar<= 66 ) )
bChar - = 51 ;
else bChar = 0xff ;
return bChar;
}
大写转化为小写字母
char * my_strlwr ( char * str)
{
assert ( str) ;
char * ret = str;
while ( * str != '\0' )
{
if ( ( * str >= 'A' ) && ( * str <= 'Z' ) )
{
* str = * str + 32 ;
str++ ;
}
else
str++ ;
}
return ret;
}
删除字符串某个字符
char * delCh ( char * str, char ch)
{
int i, j;
if ( str == NULL )
{
return NULL ;
}
for ( i = j = 0 ; str[ i] != '\0' ; i++ )
{
if ( str[ i] != ch)
{
str[ j] = str[ i] ;
j++ ;
}
}
str[ j] = '\0' ;
return str;
}
字符串拼接
char * join_ab ( char * a, char * b) {
char * c = ( char * ) malloc ( strlen ( a) + strlen ( b) + 1 ) ;
if ( c == NULL ) exit ( 1 ) ;
char * tempc = c;
while ( * a != '\0' ) {
* c++ = * a++ ;
}
while ( ( * c++ = * b++ ) != '\0' ) {
;
}
return tempc;
}
待…