Dzień dobry,
Po pierwsze- jestem początkującym programistą i proszę o wyrozumiałość :)
Mam pewien problem: program działa na sekwencjach RNA (ciągi znaków), jedną z wymaganych operacji jest dopisanie sekwencji do juz istniejącej. RNA-klasa przechowująca obiekty- sekwencje, tab- sekwencja, którą należy dopisać (wprowadzana przez użytkownika), RNAsekwencje= mapa przechowująca wskaźniki do obiektów klasy RNA. Kod:
Funkcja:
string operator += (RNA &sekwencje1, string &tab)
{
int a= tab.length();
int i,s=0;
string przechowywanie=tab;
for (i=0; i<=sekwencje1.dlugosc-1; i++)
{
tab[i]= sekwencje1.t[i];
}
for (i=sekwencje1.dlugosc; i<=a+sekwencje1.dlugosc-1; i++)
{
tab[i]=przechowywanie[s];
s++;
}
cout<<"Stworzona sekwencja:";
for (i=0; i<=a+sekwencje1.dlugosc-1; i++)
{
cout<<tab[i];
}
return tab;
}
Odpowiedni fragment w main:
cout<<"Do ktorej sekwencji chcesz dopisac nowa? ";
cin>>jaka;
string tab;
cout<<"Podaj sekwencje do dopisania: "<<endl;
cin>>tab;
dlugosc=tab.length();
string *wsk;
wsk=&tab;
string tablica=(*RNAsekwencje[jaka]+=*wsk);
int dl=tablica.length();
RNAsekwencje[licznik]=new RNA(tablica,dl);
Problem polega na tym, że nie wiem, jak można "przedłużyć" wskaźnik, by po wykonaniu działania += zwrócona została cała długość sekwencji (istniejąca+dopisana), a nie tylko ilość jej elementów równa ilości elementów w pierwotnym tab. A jeżeli taka możliwość nie istnieje- jak rozwiązać problem przekazania całej sekwencji?
W załączniku umieszczam cały program, by możliwe było sprawdzenie praktyczne.
Z góry dziękuję za odpowiedź,
Alicja