// http://tinodidriksen.com/2010/01/31/snippet-convert-hex-to-text/ #include #include #include int main() { char buf[] = "54657374"; size_t len = strlen(buf); if (len & 1) { printf("Cannot take hex from odd length string.\n"); exit(1); } char *result = (char*)malloc(len/2 + 1); memset(result, 0, len/2 + 1); for (size_t i = 0 ; i < len/2 ; ++i) { char tmp[3] = {buf[i*2], buf[i*2+1], 0}; result[i] = (char)strtol(tmp, NULL, 16); } printf("%s converted to %s\n", buf, result); free(result); return 0; }