用c语言编写函数Htoi(s)把由16进制数成10进制的数

来源:百度知道 编辑:UC知道 时间:2024/05/30 11:14:05
用c语言编写函数Htoi(s)把由16进制数字组成的字符串(包含前缀ox)转化成与之等价的整型值,字符串中允许包含0-9,a-f,A-F.谢谢大家的帮助了啊!

#include "stdio.h"
#include "string.h"
int translat(char c)
{
if(c<='9'&&c>='0') return c-'0';
if(c>='a' && c<='f') return c-87;
if(c>='A' && c<='F') return c-55;
return -1;//其它字符返回-1
}

int Htoi(char *str)
{
int length=strlen(str);
if(length==0) return 0;
int i,n=0,stat;
for(i=0;i<length;i++)
{
stat=translat(str[i]);//防错处理
if(stat>=0) n=n*16+stat;
}
return n;
}
void main()
{
char Hex[20];
printf("Input Num at Hexadecimal:");
gets(Hex);
printf("%s=%d",Hex,Htoi(Hex));
}