не знаю, лично я не могу понять что там твориться. Могу только посоветывать пройтись построчно дебагом и понять когда именно валиться, или скинуть проект.
Потом:
1)Называй переменные осмыслено.
2)
for (i=0; i<k; i++){if (isupper(s[i])) s[i]=tolower(s[i]);}
что это за пиз*ец?
кастуй слова в нижний регистр, а не побуквено.
3)
тступы делай.
и когда постишь код обрамляй в соответствующий тег.
4)
проштудируй работу со строками в С++. потому что то что ты написал выглядит ужасно.
Удачи