Um, trochę rzeczy w tym kodzie jest dziwnych:
int obliczIleTakichSamychZnakowWystepujeObokSiebie(string wyraz, int pozycja)
{
int iloscTakichSamychZnakow = 1;
char znak;
if(wyraz.length() > pozycja)
{
while((wyraz[iloscTakichSamychZnakow] == wyraz[iloscTakichSamychZnakow + 1]) && (! isdigit(wyraz[iloscTakichSamychZnakow])))
{
iloscTakichSamychZnakow++;
pozycja++;
}
}
else
iloscTakichSamychZnakow = 0;
return iloscTakichSamychZnakow;
}
Na pewno w tej pętli nigdzie nie chcesz użyć `pozycja`? Trochę dziwne, że używasz go tylko do porównania z rozmiarem.
int pozycja;
for (int i = 0; i < dlugosc-2; i++)
{
if ( !isdigit(wyrazDoSkrocenia[pozycja]) && ...
Nigdzie nie inicjalizujesz tej zmiennej?
BTW:
string konwersjaIntNaString (int liczba)
{
ostringstream ss;
ss << liczba;
string str = ss.str();
return str;
}
dokładnie to robi std::to_string.