dziwne znaki, program rle c++

0

witam, mam za zadanie napisanie programu rle w c++, stworzylem 2 tablice jedna wypelniona znakami, 2ga pusta i chcialbym aby znaki z 1 tablicy zostaly skompresowane i przeniesione do 2giej, kompresja ma wygladac tak (przyklad):

AABBCDDDEFF -> A2B2CD3EF2

Tymczasem w moim programie zamiast liczb okreslajacych ilosc powtarzajacych sie znakow, pojawiaja sie dziwne symbole typu serce itp. Sa to moje poczatki w programowaniu dlatego prosze o jasna odpowiedz i z gory dziekuje za pomoc. Oto glowna funkcja programu:

for (i=0;i<=size;i++)
{
	licznik=1;
    	while (bufor[i]==bufor[i+1])
    	{
         	licznik++;
     		i++;
        }
    	if(licznik!=1)
    	{
     		bufor2[z]=bufor[i];
     		bufor2[z+1]=licznik;
     		z=z+2;
     	}
    	else
    	{
     		bufor2[z]=bufor[i];
     		z++;
     	}
}
for(i=0;i<=size;i++)
	cout<<bufor[i];
   
cout<<endl<<endl;
for(z=0;z<=size;z++)
	cout<<bufor2[z]; 
1
bufor2[z+1]=licznik;
bufor2[z+1]=licznik+'0';

ale co gdy licznik będzie większy od 9? twój kod zakłada że jest zawsze jedna cyfra, ale nie pilnujesz tego by tak było.

0

wielkie dzieki, teraz dziala, tyle ze nie wiem dlaeczgo te +'0' pomoglo :/ moglbys mi jeszcze pomoc jak rozwiazac ta sprawe z liczbami wiekszymi od 9?

1 użytkowników online, w tym zalogowanych: 0, gości: 1