26 lines
748 B
C
Vendored
26 lines
748 B
C
Vendored
#include "stdio.h"
|
|
#include "stdlib.h"
|
|
|
|
/**
|
|
* Reads hexadecimal values from stdin and writes binary bytes to stdout.
|
|
* Accepts hex values separated by spaces, newlines, commas, etc.
|
|
* Handles both uppercase and lowercase hex digits.
|
|
*/
|
|
int main(void) {
|
|
char hexStr[3]; // Two hex digits + null terminator
|
|
int ch;
|
|
|
|
// Read characters until EOF
|
|
while((ch = getchar()) != EOF) {
|
|
hexStr[0] = (char)ch;
|
|
hexStr[1] = (char)getchar();
|
|
hexStr[2] = '\0'; // Null-terminate string
|
|
char *endptr;
|
|
unsigned char byte = (unsigned char)strtol(hexStr, &endptr, 16);
|
|
fwrite(&byte, 1, 1, stdout);
|
|
if((ch = getchar()) == EOF) // Read seaparating space
|
|
break;
|
|
}
|
|
|
|
return 0;
|
|
}
|