1

Cで16進数をバイト配列に変換する「C」で利用可能なライブラリはありますか

例えば

Input const char *ptr="ff:ff:fe:ff"

「:」区切り値がある

4

3 に答える 3

1
#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define h2i(x) (isdigit(x) ? (x) - '0' : tolower(x) - 'a' + 10)

int main(void){
    const char *ptr="ff:ff:fe:ff";
    size_t size = (strlen(ptr)+1)/3;
    unsigned char byte[size];
    int i;
    for(i = 0; i < size; ++i){
        byte[i] = h2i(ptr[i*3])*16 + h2i(ptr[i*3+1]);
        //printf("%02x", byte[i]);//for check
    }

    return 0;
}
于 2013-06-05T09:49:57.177 に答える