Kezdőoldal » Számítástechnika » Programozás » C++ string számmá alakítása,...

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.

2015. ápr. 6. 06:49
Hasznos számodra ez a válasz?
 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

2015. ápr. 6. 17:23
Hasznos számodra ez a válasz?
 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.)
2015. ápr. 6. 17:41
Hasznos számodra ez a válasz?

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!