Witam
Mam klasę Zamień, w niej element char wyr[50]. W klasie różne inne funkcje, ale jedna główna, zamieniająca wpisane wyrażenie na ONP -

Zamiana Zamiana::zamien(Zamiana wej)

Jak widać funkcja zwraca za argument przyjmuje podany element klasy, zwraca kolejny. Z tym, że ten podawany jest w formie np. 2 + 2 natomiast zwracany 2 2 +. W funkcji wprowadzam sobie m. in. dwie zmienne:

char *i,*p;
i = wej.wyr;
p=this->wyr;

]
Potem mam tutaj pętlę

while(*i)

a w niej np.

if( isdigit(*i) )
        {
			           
            while (isdigit(*i)) /* jezeli liczba na wyjscie */
            {
                *p=*i;
                i++;
                p++;
	    }
                   
           
            *p=' ';    
            p++;

        }

to tylko tak, żeby zaprezentować jak kod działa.
I ogólnie wszystko jest dobrze robione, na końcu dostaję dobrą wartość, ale...
Zwrócić muszę *this, a jak to zwracam to dostaję tylko pierwszy znak całego wyrażenia. Za to jak wpiszę pod koniec funkcji

cout<<"this"<<this->wyr;

To wypisuje elegancko całe wyrażenie w ONP. Tak jak wyżej pisałem jak podam 2+2 to przy tym z cout wypisze mi this 2 2 +. Ale jak na końcu dam

return *this

to zwróci tylko 2...
Jak zmusić tą funkcję, by zwracała całe wyrażenie a nie tylko pierwszy znak?[/kod]