将16进制字符串转换为16进制数值的两种方法

方法一:

主要用到sscanf这个库函数:
函数名: sscanf 
功  能: 执行从字符串中的格式化输入 
用  法: int sscanf(char *string, char *format[,argument,...]); //%x就是我们要格式化的类型,即输出十六进制
#include 
int main()   
{   
    char   szValue[]  =   "01f0";      
    int    nValude    =   0;          
    sscanf(szValue,"%x",&nValude);      
    printf("%d\n",nValude);
    return 0;      
} 
方法二:

主要用到strtol这个库函数,它的使用方法是:
函数名: strtol 
功  能: 将串转换为长整数 
用  法: long strtol(char *str, char **endptr, int base);//base指明我们要转换为几进制数
#include    
#include //strtol头文件   
  
int main()   
{   
    char *p="01f0";      
    char *str;      
    int i = (int)strtol(p, &str, 16);//十六进制   &str可用NULL代替
    printf("%d\n",i);   
    return 0;      
}   





你可能感兴趣的:(c++小技巧)