19-将十六进制字符串转成数字
#include <stdio.h>
#include <ctype.h>
//将十六进制字符串转成数字
//只支持以数字开头或者0x或者0X开头
int HexToint(const char *str)
{
int tmp = 0;//保存值
if(*str=='0' && (*(str+1)=='x') || (*(str+1)=='X')) //跳过"0x"或者"0X"
str+=2;
while(isxdigit(*str))
{
if(isdigit(*str))//数字
{
tmp = tmp*16+*str-'0';
}
else if(isupper(*str))//大写字母
{
tmp = tmp*16+ *str-'A'+10;
}
else //小写字母
{
tmp = tmp*16 + *str-'a'+10;
}
str++;
}
return tmp;
}
int main()
{
int n= HexToint("123");
printf("%d\n",n);
return 0;
}
还没有评论,来说两句吧...