(C++) del av en string till en int

Permalänk

(C++) del av en string till en int

Hej jag sitter och kodar ett program i c++ och har fått ett problem. Det är så att jag vill omvandla en bit av en string till en int. Så i stringen är det lagrat t.ex. 203 och då vill jag ha det talet till en int.
Jag har inga problem att omvandla hela stringen men problemet är när det kommer till bara tre siffror. Jag har hittat en metod som fungerade men den klarade inte av siffran 0. Så min fråga är hur ska jag göra?

Permalänk
Medlem

Är siffrorna på en bestämd plats?

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk

Japp dem har bestämd placering

Permalänk
Medlem

result = 0
for(int i = startIdx; i < stopIdx; ++i)
result = result * 10 + str[i] - '0';

kanske

Edit: Varför fick du problem just när talets position i strängen hade betydelse?

Visa signatur

"Some poor, phoneless fool is probably sitting next to a waterfall somewhere, totally unaware of how angry and scared he's supposed to be." - Duncan Trussell

Permalänk

Tack gibbon_!
Nu fungerar det precis som jag ville.

Vet inte blev bara fel hela tiden när jag testade

Permalänk
Medlem

Fast det "riktiga" c++-sättet är ju såklart att använda stringstreams...

int val; istringstream iss(str.substr(startIndex, len)); iss >> val;