Kā konvertēt std::string uz int?

Man ir tikai īss jautājums. Es esmu diezgan daudz skatījies internetā un esmu atradis dažus risinājumus, bet neviens no tiem vēl nav darbojies. Skatos, kā pārvērst virkni int, un es nedomāju ASCII kodus.

Īsumā: mums tiek nodota vienādojums kā virkne. Mums tā jāsadala, pareizi jānoformātē un jāatrisina lineārie vienādojumi. Tagad, sakot to, es nespēju pārvērst virkni int.

Es zinu, ka virkne būs vai nu formātā (-5), vai (25) utt., tāpēc tā noteikti ir int. Bet kā to iegūt no virknes?

Viens no veidiem, kā es domāju, ir palaist for/while cilpu caur virkni, pārbaudīt, vai ir cipars, izvilkt visus ciparus pēc tā un pēc tam paskatīties, vai ir priekšējais '-', ja ir, tad reizināt int ar -1.

Tomēr šķiet, ka tas ir mazliet sarežģīti tik nelielai problēmai. Kādas idejas?

std::istringstream ss(thestring);
ss >> thevalue;

Lai kļūdas kļūdas kļūdas karodziņi būtu pilnīgi pareizi, pārbaudiet tos.

Komentāri (8)

izmantot funkciju atoi, lai pārvērstu virkni veselos skaitļos:

string a = "25";

int b = atoi(a.c_str());

http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

Komentāri (1)

atoi ir iebūvēta funkcija, kas pārvērš virkni veselā skaitlī, pieņemot, ka virkne sākas ar veselu skaitli.

http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

Komentāri (1)