Cześć,
Mam do napisania program, który po wprowadzeniu np A4B5, na wyjściu daje nam AAAABBBBB, na tę chwilę program zachowuję się tak ze na wyjściu daje AAAABBBBBBBBBBBBBBBBBBBBBBBB... Wychodzi na to ze daję mi AAAA, ale potem bierze pod uwagę zamiast tylko 5, liczbę 45....
Poniżej kod, gdzie szukać błędu?
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
using namespace std;
int konwersjaIntNaString(string liczba)
{
int liczbaWIncie;
istringstream iss(liczba);
iss >> liczbaWIncie;
return liczbaWIncie;
}
int main()
{
string wyrazDoRozwiniecia;
string powtarzajacySieZnak;
string rozpakowanyWyraz;
string liczbaWyraz;
int dlugosc;
int iloscPowtorzenZnaku;
int i=0;
cin >> wyrazDoRozwiniecia;
dlugosc=wyrazDoRozwiniecia.length();
while (i<dlugosc)
{
if((wyrazDoRozwiniecia[i]>='0') && (wyrazDoRozwiniecia[i]<='9' ))
{
powtarzajacySieZnak=wyrazDoRozwiniecia[i-1];
while ((wyrazDoRozwiniecia[i]>='0') && (wyrazDoRozwiniecia[i]<= '9'))
{
liczbaWyraz=liczbaWyraz+wyrazDoRozwiniecia[i];
i++;
}
iloscPowtorzenZnaku=(konwersjaIntNaString(liczbaWyraz));
cout << iloscPowtorzenZnaku<<endl;
for (int j=1; j<=iloscPowtorzenZnaku-1; j++)
{
rozpakowanyWyraz=rozpakowanyWyraz+powtarzajacySieZnak;
}
iloscPowtorzenZnaku=(konwersjaIntNaString(liczbaWyraz));
iloscPowtorzenZnaku=0;
}
else
{
rozpakowanyWyraz=rozpakowanyWyraz+wyrazDoRozwiniecia[i];
i++;
}
}
cout << rozpakowanyWyraz;
}