c语言问题...好尴尬...

来源:百度知道 编辑:UC知道 时间:2024/06/12 01:51:02
从键盘输入一个十六进制的数字字符串...将其转换为十进制数输出...
到底哪个对么?

#include<stdio.h>
long HexToInt(char ch[],int index)
//函数参数:16进制的字符串地址 字符长度
{
long sum=0,temp,carry=1;
int i;
for(i=index-1;i>=0;i--)
{
if(ch[i]>='A' && ch[i]<='F') ch[i]=ch[i]+32;
switch(ch[i])
{
case '0':temp=0;break;
case '1':temp=1;break;
case '2':temp=2;break;
case '3':temp=3;break;
case '4':temp=4;break;
case '5':temp=5;break;
case '6':temp=6;break;
case '7':temp=7;break;
case '8':temp=8;break;
case '9':temp=9;break;
case 'a':temp=10;break;
case 'b':temp=11;break;
case 'c':temp=12;break;
case 'd':temp=13;break;
case 'e':temp=14;break;
case 'f':temp=15;break;
default :return -1;
}
sum=sum+carry*temp;
carry*=16;
}
return sum;
}
main()
{
char