Csak egy gyors kérdésem lenne. I've nézett körül az interneten elég egy kicsit, és én've találtam néhány megoldást, de egyikük sem működött még. Egy karakterlánc int-be való konvertálását keresem, és nem az ASCII kódokra gondolok.
Egy gyors átfutás, egy egyenletet adunk át egy stringként. Le kell bontanunk, helyesen kell formáznunk és meg kell oldanunk a lineáris egyenleteket. Most, amikor ezt mondom, nem vagyok képes egy karakterláncot int-be konvertálni.
Tudom, hogy a karakterlánc vagy (-5) vagy (25) stb. formátumban lesz, tehát biztosan int. De hogyan lehet ezt kivonni egy stringből?
Az egyik módja, amire gondoltam, egy for/while ciklus futása a karakterláncon, egy számjegy keresése, az összes számjegy kivonása utána, majd megnézni, hogy volt-e egy vezető '-', ha van, szorozzuk meg az int-et -1-gyel.
Úgy tűnik, egy kicsit túl bonyolult egy ilyen kis probléma, bár. Bármilyen ötlet?
std::istringstream ss(thestring);
ss >> thevalue;
A teljes korrektség érdekében ellenőrizze a hibajelzőket.
az atoi függvényt használja a karakterlánc egész számmá alakításához:
string a = "25";
int b = atoi(a.c_str());
Az "atoi" egy beépített függvény, amely egy karakterláncot egész számmá alakít, feltételezve, hogy a karakterlánc egész számmal kezdődik.