You can adapt this answer in the linked question to C pretty easily to accomplish the original goal (live example):
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#define GET_CH(s, i) ((i) >= sizeof(s) ? '\0' : (s)[i])
#define STRING_TO_CHARS_EXTRACT(z, n, data) \
BOOST_PP_COMMA_IF(n) GET_CH(data, n)
#define STRING_TO_CHARS(STRLEN, STR) \
BOOST_PP_REPEAT(STRLEN, STRING_TO_CHARS_EXTRACT, STR)
char string[] = {STRING_TO_CHARS(12, "FlyOffLedge")};
I don't think it's possible in C to handle the length automatically.
If all you're after is the question as asked, you can use a trick like in Justin's answer to get the first character of each stringized character without using character literal syntax (similar live example).