将字符*转换为C中的uint16

将字符*转换为C中的uint16,c,linux,C,Linux,我有类似的字符数组 char* str = 0x058f; 如何将此值转换为int和uint16\u t,并按uint16\u t类型正确打印此值 这意味着我希望uint16的结果也是058f: uint16_t result = 0x058f; 将此值转换为int和uint16\u t,并通过uint16\u t正确打印此值 您可以使用strtol将字符串转换为整数值 *char* str = "0x058f"; result = strtol(str,NULL,16); printf(

我有类似的字符数组

char* str = 0x058f;
如何将此值转换为int和uint16\u t,并按uint16\u t类型正确打印此值

这意味着我希望uint16的结果也是058f:

 uint16_t result = 0x058f;
将此值转换为int和uint16\u t,并通过uint16\u t正确打印此值


您可以使用strtol将字符串转换为整数值

*char* str = "0x058f";
result = strtol(str,NULL,16);
printf("result = %x\n",result);*

我希望这能有所帮助。

您的意思是转换
char*str=“0x058f”?查看
中的
sscanf()
SCNx16
。这个问题根本没有显示任何研究工作。谷歌
c十六进制到int
,一大堆答案:非常感谢,我知道了~
*char* str = "0x058f";
result = strtol(str,NULL,16);
printf("result = %x\n",result);*