题目:编写函数 Htoi(s),把由十六进制数字组成的字符串(包含可选的前缀 0x或0X)转换为与之等价的整型值。字符串中允许包含的数字与字符包括:0-9、a-f以及A-F。
int Htoi(char s[])
{
int htoiI=0, htoiJ=1,htoiS = 0,htoiJudge=0;
for (htoiI = 0; s[htoiI] != '\0'; htoiI++)
{
;
}
htoiI--;
while(htoiI >= 2)
{
htoiJudge = s[htoiI];
if (htoiJudge >= 48 && htoiJudge <= 57)
{
htoiS += (htoiJudge-48) * htoiJ;
}
else if (htoiJudge >= 65 && htoiJudge <= 70)
{
htoiS += (htoiJudge-55) * htoiJ;
}
else if (htoiJudge >= 97 && htoiJudge <= 102)
{
htoiS += (htoiJudge - 87) * htoiJ;
}
else
{
printf("运算出错");
break;
}
htoiJ *= 16;
htoiI--;
}
return htoiS;
}