C-将const char hex字符串转换为未签名的char



我可以找到任何工作实现,所以我使用sccanf写了一个,但是我有问题,将const char转换为未签名的char" ffx16"表格,但是它转换了所有字符但是,第二个角色的第二个角色将其更改为printf输出上的" fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff0f"(ive离开了调试功能进行测试),我知道周围有C 版本,但我更喜欢纯C工作工作:(

代码:

   #include <stdlib.h>
   #include <stdio.h>
   #include "util.h"
   #include <string.h>
   char* hex_to_char(const char* hex, int len) {
       char *_a = malloc(len / 2);
       int num = 0;
       unsigned _b;
       while(num < len) {
           sscanf(&hex[num], "%02X", &_b);
           _a[num/2] = _b;
           num++;
       }
       return _a;
   }

用法:

    const char* buf2 = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
    unsigned char start_seed[16];
    int t = 0;
    char* buf = hex_to_char(buf2, 32);
    if(debug == 1) { printf("Start Seed : "); }
    while(t < 16) {
        start_seed[t] = (unsigned char)buf[t];
        if(debug == 1) { printf("%02X", buf[t]); }
        t++;
    }
    if(debug == 1) { printf("n"); }

//输出:ffffffffffffffffffffffffffffffffffffffffffffffff0f

使用num += 2代替num++。 &ndash;&nbsp; wintermute

最新更新