试题描述
1)请编写htoi函数,其功能是将十六进制字符串转为十进制整数。
2)在主函数中输入一个十六进制字符串(长度不超过8个字符),调用上述函数计算此十六进制对应的十进制,最后在主函数中输出该函数的返回值。
注意:不要改变函数名称,注意大小写敏感。
输入
输入一个十六进制字符串,长度不超过8个字符。
输出
输出十进制整数。
输入示例1
f
输出示例1
15
输入示例2
a7
输出示例2
167
数据范围
输入为字符串,输出为int范围的整数
#include <stdio.h>
#include <math.h>
#include <string.h>
int main(){
char a[8];
int x;
gets(a);
x=htoi(a);
printf("%d",x);
return 0;
}
int htoi(char array[8]){
int i,x=0,l;
l=strlen(array);
for(i=0;i<l;i++){
if (array[i]>='0'&&array[i]<='9')
x+=(int)(array[i]-'0')*pow(16,l-i-1);
else if (array[i]>='a'&&array[i]<='f')
x+=(10+((int)array[i]-'a'))*pow(16,l-i-1);
}
return x;
}