C++ string számmá alakítása, sima C -s funkció nélkül?
Figyelt kérdés
2015. ápr. 6. 05:38
1/4 anonim válasza:
Ha semmilyen beépített függvényt nem használhatsz, akkor az egyik megoldás, hogy jobbról balra egyenként alakítod át a karaktereket (a karakter ASCII kódjából levonsz 48-at), és helyiérték súlyozottan összeadod őket. Tehát jobbról az elsőhöz a második tízszeresét, a harmadik százszorosát, stb.
"456" -> 6 + 10*5 + 100*4
A törtek kicsit macerásabbak, de nem sokkal.
2/4 A kérdező kommentje:
Köszi, nekem is eszembe juthatott volna. Törtek szimplán ugyan ez csak a megfelelő helyen kettéválasztod a stringet. Kellemes ünnepeket!
2015. ápr. 6. 09:13
3/4 anonim válasza:
sztem egyszerűbb, ha az elejéről mész.
hozzáadod a számjegy értékét egy változóhoz, majd szrorod 10-zel. Amíg tart a string.
456-ra:
kezdetben: x = 0, hozzáadsz 4-et
x = 4, szorzod 10-zel
x = 40, hozzáadsz 5-öt
x = 45, szorozod 10-zel:
x = 450, hozzáadsz 6-ot
x = 456
pseudokod:
x = 0
ciklus i = 0-tól a string hosszáig (-1)
x = x*10
x = x+ (string[i] - 48)
ciklus vége
4/4 anonim válasza:
Igen, én is gondolkodtam, hogyan lehetne az elejétől, mert egy null-terminated sztinggel hatékonyabb lenne úgy. Valóban jó megoldás. (Utaltam is rá, hogy az enyém az "egyik" megoldás.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!