Hvordan kan jeg konvertere en std::string til int?

Jeg har lige et hurtigt spørgsmål. Jeg har kigget en del rundt på internettet, og jeg har fundet et par løsninger, men ingen af dem har virket endnu. Kigger på at konvertere en streng til en int og jeg mener ikke ASCII-koder.

For en hurtig gennemgang, vi får en ligning ind som en streng. Vi skal bryde den ned, formatere den korrekt og løse de lineære ligninger. Nu, når jeg siger det, er jeg ikke i stand til at konvertere en streng til en int.

Jeg ved, at strengen vil være i enten formatet (-5) eller (25) osv. så det er helt sikkert en int. Men hvordan uddrager vi det fra en streng?

En måde jeg tænkte på er at køre en for/while loop gennem strengen, tjekke for et ciffer, udtrække alle cifrene efter det og så se om der var et ledende '-', hvis der er, multiplicere int'en med -1.

Det virker dog lidt for kompliceret for et så lille problem. Nogen ideer?

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

For at være helt korrekt skal du kontrollere fejlflagene.

Kommentarer (8)

bruge atoi-funktionen til at konvertere strengen til et heltal:

string a = "25";

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

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

Kommentarer (1)

atoi er en indbygget funktion, der konverterer en streng til et heltal, idet det antages, at strengen begynder med en heltalsrepræsentation.

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

Kommentarer (1)