#include<stdio.h>
int htoi(char s[]);
/*htoi(s):convert a string of hexadecimal digits into its equivalent integer value*/
void main()
{
char hex[]={0x2A};
int dec;
dec=htoi(hex);
printf("%d\n",dec);
}
int htoi(char s[])
{
int i,n,remain;
n=0;
i=0;
if(s[i]=='0') /*skip the "0x"&"0X"*/
{ ++i;}
else if(s[i]=='x'||s[i]=='X')
{ ++i;}
else
;
for(;s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='F'||s[i]>='a'&&s[i]<='f';++i)
{
if(s[i]>='0'&&s[i]<='9')
{
remain=s[i]-'0';
n=n*16+remain;
return n;
}
else if(s[i]>='A'&&s[i]<='F')
{
remain=s[i]-'7';
n=n*16+remain;
return n;
}
else if(s[i]>='a'&&s[i]<='f')
{
remain=s[i]-'W';
n=n*16+remain;
return n;
}
else
return n;
}
return n;}