Ну это я по программе понимаю, но для чего эти процессы отнимания и прибавления? Почему нельзя сразу добавить в нашей букве необходимое число минуя все это?
Тогда первую буквы не получится вывести, так как пере первым словом не будет пробела. А делать 2 функции - одну, которая будет выводить первый символ и вторую, которая будет выводить символы после пробела - ну как то уж слишком извращенно. Думаю должен быть более лаконичный вариант.