W pętli for masz taki warunek:
i = slowo.length()
Czy nie miało być tam przypadkiem czegoś takiego?
i < slowo.length()
Pętla ma się wykonywać dopóki i jest mniejsze niż długość słowa.
Program zatrzymuje Ci się dlatego, że nie wyczyściłeś strumienia wejściowego (więcej informacji na ten temat znajdziesz tutaj: http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12). Po wczytaniu stringa "slowo", a przed wczytaniem inta "przesu" daj taki kod:
cin.clear();
cin.ignore(1000, '\n');
Możesz też bardziej profesjonalnie skorzystać z nagłówka <limits> (z tego co widzę jest to w podanym przeze mnie linku opisane), ale jeśli się dopiero uczysz to nie musisz sobie zaprzątać głowy czymś takim jeszcze.
Kolejna sprawa - tablica z alfabetem powinna być typu char, wtedy std::cout wypisze Ci odpowiednie litery jako znaki (a, b, c), a nie jako odpowiadające tym znakom liczby (97, 98, 99).
Inna sprawa to taka, że rozmiar tablicy ustawiłeś na 29, a liter w alfabecie łacińskim jest 26. Jeszcze inna sprawa to taka, że ta tablica w ogóle nie jest Ci do niczego potrzebna. Switch i obsługa każdej literki z osobna też nie jest dobrym rozwiązaniem, bo wymaga duplikowania kodu do przesunięcia kilkadziesiąt razy! Lepszym rozwiązaniem byłoby skorzystanie z operacji modulo - pomyśl sam, jak można by jej tutaj użyć.