What strins does is look for a NULL character in the string that is being inserted into another. Think of it like this: the address behind str_hello denotes a location X in the memory, str_hello[2] denotes a location X+2 and strins will start inserting and searching for a \0 character.
I won't suggest format, I'll suggest that you write your own sort of routine for this. Don't be afraid of creating another buffer to store the string, for example, since this is what strins does internally as well, there's no magic behind that.
1. Create an output string.
2. Start a for-loop: i = 0; i != strlen(destination); ++i
3. If i becomes the value at which you want to insert (in your case this is 0, but not always as you said, so make the code generic
), insert the character and increment the value of i (make sure it is not the last character in the string, also see if the character at which you wish to insert is even in the valid range of the string length before the insertion step).