如果我有
char input[50] = "xFFFF";
int a;
如何将输入的数值存储在? 语言是C。
答案 0 :(得分:4)
一种方法可能是:
if (sscanf(input, "x%x", &a) == 0) {
/* matching failed */
}
如果你的输入使用真正的十六进制说明符(如“0xFFFF”),你只需使用%i:
if (sscanf(input, "%i", &a) == 0) {
/* matching failed */
}
答案 1 :(得分:2)
您可以使用strtol功能
char *ptr;
long a = strtol( input, &ptr, 16 );
答案 2 :(得分:1)
一种方式:
#include <stdlib.h>
int main()
{
char *p="xFFFF";
long lng=strtol(&p[1], (char **)0, 16);
printf("%ld\n", lng);
return 0;
}
答案 3 :(得分:0)
请参阅C++ convert hex string to signed integer,如果您处于纯C环境中,请务必向下滚动。