posts - 26,comments - 0,views - 2142

Archlinux

GCC 13.1.1  20230429

2023-07-22 19:48:23 星期六

 


点击查看代码
#include<stdio.h>
#include<ctype.h>

int htoi( const char *s );

int main()
{
    char arr[4] = "0x3A";
    int result = htoi(arr);

    printf("%d\n", result);



    return 0;
}



int htoi( const char *s )
{
    int i, out;

    i = out = 0;

    //处理前缀
    if( s[0] == '0' && ( s[1] == 'x' || s[1] == 'X') )
        i = 2;

    //处理字符串
    while( s[i] != '\0' )
    {
        int tmp = 0;
        char c_tmp = s[i];

        if( isdigit(c_tmp) ){
            tmp = c_tmp - '0';
        }
        else if( c_tmp >= 'A' && c_tmp <= 'F' ){
            tmp = c_tmp - 'A' + 10;
        }
        else{
            puts("字符非法!");
        }

        out = out * 16 + tmp;
        ++i;
    }

    return out;
}

 


运行截图:

image

0x3A的十进制数是58,输出正确。

 


小白刚学习C语言,代码质量不高,欢迎评论。

posted on   语巫  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示