从十六进制表示的字符串中转换为整数(atoi()函数)

40

需要将十六进制表示的字符串转换为整数,例如"0xFA"或更好的"FA"。需要类似于atoi("FA")的东西。是否有标准解决方案?


4
你的意思是类似于strtol这样的函数吗? - Jongware
3
了解你的工具这个网站提供了关于C语言编程的参考资料,包括标准库函数和C语言语法。它可以帮助你更好地理解和使用C编程语言,并在开发过程中节省时间和精力。无论您是新手还是专业人士,都可以从这些资源中受益。 - user694733
1个回答

85

尝试使用 strtol()

strtol("FA", NULL, 16);

1
注意:它也适用于0xFA:“(可选)前缀(0x或0X),表示十六进制基数(仅适用于基数为16或0)”。 - Jongware
28
对于未签名的情况,应使用strtoul()来正确处理类似于“0x81234567”这样的字符串,否则将返回0xFFFFFFFF。 - gjcamann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接