kasowanie znakow ze stringa

0

Mam duza liczbe w postaci stringa. Zdarza sie, ze zaczyna sie ona od zer, wiec chcialbym je usunac.
Np "00001212" -> "1212"
"000120012" -> "120012"

string temp;
...
for(int i=0; i<temp.length() ;i++)
        {
        if(temp[i]=='0')temp.erase(i,1);
        }

Dlaczego nie dziala? Jak sie z tym problemem uporac?
prosze o szybka pomoc! to jest bardzo pilne

0

o_O ?
Ta twoja pętla wyrzuci wszystkie zera ze stringa, a nie tylko te początkowe, wiec chyba nie do końca to co chciałeś...
Poza tym będzie wyrzucać losowe znaki, bo przecież znaki będą sie przesuwać po usunięciu...

while(temp[0]=='0')
  temp.erase(0,1);
0

możesz to zrobić np Tak

string ciag="00012101";
	int i=0,p=0,l=0;
	
	if(ciag[0]=='0')
	{
			while(ciag[i]=='0' )
				i++;
	}

	while( i<ciag.length() )
	{
		ciag[p]=ciag[i];
		p++;
		i++;
	}

  while( p < ciag.length() )
    {
            ciag[p]=' ';
            p++;
    }
	cout<<ciag;
0

Przekombinowałeś Sid_ ;)

int i = 0;
while(ciag[i] == '0')++i;
ciag.erase(0,i);
0

przekombinowałeś 0x666

int i = 0;
while(ciag[i] == '0'){
i++
ciag.erase(0,i);
}

zapomniałeś o nawiasach klamrowych :>

0

Przeanalizuj kod jeszcze raz, dokładnie... :>

0

fakt,nie przekombinaowałeś :P

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