在C中存储来自字符串的输入十六进制值

时间:2019-02-28 22:51:34

标签: c encoding type-conversion hex

我目前在我的C程序中有一个字符串argv输入(即./a“ 123456”)。有什么方法可以在不创建转换表的情况下将该字符串转换为十六进制值(0x123456)?

请注意,我想将字符串直接转换为十六进制并存储以供使用(即“ \ x12 \ x34 \ x56”,而不是ASCII十六进制值。

1 个答案:

答案 0 :(得分:2)

在C中将字符串转换为整数的规范函数strtol具有基数参数,因此您可以使用:

int hex = strtol(argv[1], NULL, 16);