for (int i = len-2; index>= 0; index --)
Без какого-либо реального контекста я бы рискнул заменить int i на int index.
int i
int index
Вы используете две переменные: i и index, может быть, это доставляет вам проблемы?
i
index
Трудно сказать из одной строки кода, но почему вы инициализируете i, а также проверочный и убывающий индекс? Попробуйте:
for (int index = len-2; index>= 0; index --)
Вы перебираете строку назад? (Я полагаю, это было ваше намерение)
Вы также не начинаете с самого последнего символа в строке, вы начинаете со второго последнего (len-2).