用函数代码如下:
#include "stdafx.h"
#include "string.h"
#define N 100
int hexStr2Int(char s[])
{
int i,len,m=1,n=0;
len=strlen(s);
printf("%d\n",len);
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
{
for(;i<len-1;i++)
m=m*16;
n=(s[i]-'0')*m+n;
}
else if(s[i]>='a'&&s[i]<='f')
{
for(;i<len-1;i++)
m=m*16;
n=(s[i]-'a'+10)*m+n;
}
else if(s[i]>='A'&&s[i]<='F')
{
for(;i<len-1;i++)
m=m*16;
n=(s[i]-'A'+10)*m+n;
}
else printf("error");
}
return(n);
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,m=0;
char s[N],c;
printf("请输入一个十六进制数:");
for(i=0;(c=getchar())!='\n';i++)
{
if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')
s[i]=c;
}
s[i]='\0';
m=hexStr2Int(s);
printf("相应的十进制数为:%d",m);
return 0;
}
请问何处的代码错误?输出结果不正确