初学者问一个C语言问题
把十六进制数字组成的字符串转化为与之等价的整型值
#include <stdio.h>
#define YES 1
#define NO 0
int htoi(char *s)
{
int hexdigit,i=0,inhex,n;
if(s[i]=='0')
{
++i;
if(s[i]=='x'||s[i]=='X')
++i;
}
n=0;
inhex=YES;
for( ;inhex=YES;++i)
{
if(s[i]>='0' && s[i]<='9')
hexdigit=s[i]-'0';
else if(s[i]>='a'&&s[i]<='f')
hexdigit=s[i]-'a'+10;
else if(s[i]>='A'&&s[i]<='F')
hexdigit=s[i]-'A'+10;
else
inhex=NO;
if(inhex==YES)
n=16*n+hexdigit;
}
return n;
}
main()
{
char *s="oxc6f";
printf("%d",htoi(s));
}
运行时说应用内存错误,请问各位大侠,这是什么问题