#include <stdio.h>
char buffer[9] = {};
char* atob(char ch, char *buffer) {
// Check for lowercase alphabets (a-z) and valid buffer
if (ch < 'a' || ch > 'z') {
return NULL; // Indicate error
}
// Convert ASCII value to binary
int ascii_value = ch;
int i;
// Build the binary string in the provided buffer (reverse order)
for (i = 0; i < 8; i++) {
buffer[i] = (ascii_value & (1 << (7 - i))) ? '1' : '0';
}
// Add null terminator at the end (overwrite buffer[8] if provided)
buffer[8] = '\0';
return buffer;
}
int main(void) {
printf("%c -> atob -> %s", 'd', atob
('d',&buffer
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjaGFyIGJ1ZmZlcls5XSA9IHt9OwoKY2hhciogYXRvYihjaGFyIGNoLCBjaGFyICpidWZmZXIpIHsKICAvLyBDaGVjayBmb3IgbG93ZXJjYXNlIGFscGhhYmV0cyAoYS16KSBhbmQgdmFsaWQgYnVmZmVyCiAgaWYgKGNoIDwgJ2EnIHx8IGNoID4gJ3onKSB7CiAgICByZXR1cm4gTlVMTDsgLy8gSW5kaWNhdGUgZXJyb3IKICB9CgogIC8vIENvbnZlcnQgQVNDSUkgdmFsdWUgdG8gYmluYXJ5CiAgaW50IGFzY2lpX3ZhbHVlID0gY2g7CiAgaW50IGk7CgogIC8vIEJ1aWxkIHRoZSBiaW5hcnkgc3RyaW5nIGluIHRoZSBwcm92aWRlZCBidWZmZXIgKHJldmVyc2Ugb3JkZXIpCiAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewogICAgYnVmZmVyW2ldID0gKGFzY2lpX3ZhbHVlICYgKDEgPDwgKDcgLSBpKSkpID8gJzEnIDogJzAnOwogIH0KCiAgLy8gQWRkIG51bGwgdGVybWluYXRvciBhdCB0aGUgZW5kIChvdmVyd3JpdGUgYnVmZmVyWzhdIGlmIHByb3ZpZGVkKQogIGJ1ZmZlcls4XSA9ICdcMCc7CgogIHJldHVybiBidWZmZXI7Cn0KCmludCBtYWluKHZvaWQpIHsKCXByaW50ZigiJWMgLT4gYXRvYiAtPiAlcyIsICdkJywgYXRvYignZCcsJmJ1ZmZlcikpOwoJcmV0dXJuIDA7Cn0K