A string in C consists of the individual characters followed by a null (zero byte). So the string "79" is of length 3.
Strings are placed into character array storage. You can allocate it on the heap, but just declaring an array is simpler. So the code would be:
char charac[3];
charac[0] = '7';
charac[1] = '9';
charac[2] = '\0'; // or just 0
Even simpler:
char charac[3] = { '7', '9' }; // the 0 just happens
Even simpler:
char charac[] = "79";
Each of these three pieces of code does exactly the same thing.
In response to a comment, the treatment of initialised aggregates in the C standard is defined as follows: n1570 S6.7.9/21:
If there are fewer initializers in a brace-enclosed list than there are elements or members
of an aggregate, or fewer characters in a string literal used to initialize an array of known
size than there are elements in the array, the remainder of the aggregate shall be
initialized implicitly the same as objects that have static storage duration.
In other words, any time you use brace initialisation the remaining items are zero filled.