以下为本人在工程中经常用的几个字符串转换函数
#include
#include
/* str to hex */
int ascii_atox(const char *s)
{
char xdigs[] = "0123456789ABCDEF";
long sum;
/* 跳过空格 */
while(isspace(*s))
++s;
for(sum=0L;isxdigit(*s);++s)
{
int digit = strchr(xdigs,toupper(*s)) - xdigs;
sum = sum*16L + digit;
}
return sum;
}
/* str to dec */
int ascii_atodec(const char *s)
{
char digs[]="0123456789";
long sum;
/* 跳过空格 */
while(isspace(*s))
++s;
for(sum=0L;isdigit(*s);++s)
{
int digit = strchr(digs,*s) - digs;
sum = sum*10L + digit;
}
return sum;
}
/* str to int,
s - poiter to string
size -length of string
base -only 10 or 16
*/
int ascii_atoi(const char *s,size_t size,int base)
{
char digs[] = "0123456789ABCDEF";
long sum = 0L;
if((base != 10) || (base != 16))
return sum=0;
while(isspace(*s))
++s;
for(int i=0;i