htoi(十六进制转十进制)

来源:互联网 发布:陈田村拆车件淘宝店 编辑:程序博客网 时间:2024/04/30 15:13
/*htoi函数实现*/#include <stdio.h>#include <math.h>#include <ctype.h>bool mydigit(int ch){    if(ch > '0' && ch < '9')        return true;    return false;}int transfer(char ch){    if(mydigit(ch))        return ch - '0';    if(ch >= 'a' && ch <= 'f')    {        switch(ch)        {            case 'a':                return 10;            case 'b':                return 11;            case 'c':                return 12;            case 'd':                return 13;            case 'e':                return 14;            case 'f':                return 15;            default:                break;        }    }    else    {        return -1;    }}int htoi(const char *str){    int int_t = 0;    if(str == NULL)        return 0;    while(*str != '\0')    {        if(transfer(*str) < 0)        {            return -1;        }        int_t = int_t*16+transfer(*str++);    }    return int_t;}int main(void){    int a = 0;    a = htoi("1acda");    printf("a = %d\n",a);    return 0;}

方法较笨,仅供参考

0 0