C填空题:从键盘输入一个十六进制字符串,将其转换为十进制数

#include
int change(char *s)
{
int sum=0;
while(*s)
{
if(*s>='a'&&*s<='z')
sum=();
else if(*s>='A'&&*s<='Z')
sum=();
else if(*s>='0'&&*s<='9')
sum=();
();
}
return sum;
}
void main()
{
char a[81];
int c,(*p)();
gets(a);
p=();
c=(*p)(a);
printf("%d\n",c);
}
填空题:从键盘输入一个十六进制字符串,将其转换为十进制数。函数change()实现转换,主函数通过函数指针调用转换函数,求教大侠解释

 #include <stdio.h>
int change(char *s)
{
    int sum=0;
    while(*s)
    {
        if(*s>='a'&&*s<='z')
            sum=(*s-'a' + 10 + sum);
        else if(*s>='A'&&*s<='Z')
            sum=(*s - 'A' + 10 + sum);
        else if(*s>='0'&&*s<='9')
            sum=(*s - '0' + 10 + sum);
        ();
    }
    return sum;
}
void main()
{
    char a[81];
    int c,(*p)();
    gets(a);
    p=();
    c=(*p)(a);
    printf("%d\n",c);
}
 sum=(*s-'a' + 10 + sum); -> sum=(*s-'a' + 10 + sum * 10); 别的类似

#include <stdio.h>
int change(char *s)
{
    int sum=0;
    while(*s)
    {
        if(*s>='a'&&*s<='z')
            sum=(*s-'a' + 10 + sum*16);
        else if(*s>='A'&&*s<='Z')
            sum=(*s - 'A' + 10 + sum*16);
        else if(*s>='0'&&*s<='9')
            sum=(*s - '0' + 10 + sum*16);
        s++;
    }
    return sum;
}
void main()
{
    char a[81];
    int c,(*p)();
    gets(a);
    p=change;
    c=(*p)(a);
    printf("%d\n",c);
}

还有一个括号,填s++