#include <iostream>
char * strToBinStr(char const * const src, char * const dest, size_t const size)
{
char const * p = src;
char c = '\0';
size_t i = 0;
if (size > 8)
{
while ((c = *p++) != '\0' && i < size-8)
{
for (int8_t j = 7; j >= 0; j--)
{
dest[i++] = ((c >> j) & 1) + '0';
}
}
}
dest[i] = '\0';
return dest;
}
int main()
{
char str[] = "Hi";
char dest[17]; // enough space for 8*n characters + null character
printf("%s\n", strToBinStr(str, dest, sizeof(dest)));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2hhciAqIHN0clRvQmluU3RyKGNoYXIgY29uc3QgKiBjb25zdCBzcmMsIGNoYXIgKiBjb25zdCBkZXN0LCBzaXplX3QgY29uc3Qgc2l6ZSkKewoJY2hhciBjb25zdCAqIHAgPSBzcmM7CgljaGFyIGMgPSAnXDAnOwoJc2l6ZV90IGkgPSAwOwoJCglpZiAoc2l6ZSA+IDgpCgl7CgkJd2hpbGUgKChjID0gKnArKykgIT0gJ1wwJyAmJiBpIDwgc2l6ZS04KQoJCXsKCQkJZm9yIChpbnQ4X3QgaiA9IDc7IGogPj0gMDsgai0tKQoJCQl7CgkJCQlkZXN0W2krK10gPSAoKGMgPj4gaikgJiAxKSArICcwJzsKCQkJfQoJCX0KCX0KCQoJZGVzdFtpXSA9ICdcMCc7CgkKCXJldHVybiBkZXN0Owp9CgppbnQgbWFpbigpCnsKCWNoYXIgc3RyW10gPSAiSGkiOwoJY2hhciBkZXN0WzE3XTsgLy8gZW5vdWdoIHNwYWNlIGZvciA4Km4gY2hhcmFjdGVycyArIG51bGwgY2hhcmFjdGVyCgkKCXByaW50ZigiJXNcbiIsIHN0clRvQmluU3RyKHN0ciwgZGVzdCwgc2l6ZW9mKGRlc3QpKSk7CgoJcmV0dXJuIDA7Cn0=