Wie kann ich einen std::string in int konvertieren?

Ich habe nur eine kurze Frage. I've sah um das Internet ziemlich viel und I've fand ein paar Lösungen, aber keiner von ihnen haben noch gearbeitet. Mit Blick auf die Umwandlung einer Zeichenfolge in eine int und ich don & #39; t meinen ASCII-Codes.

Um es kurz zu machen, wird uns eine Gleichung als String übergeben. Wir sollen sie aufschlüsseln, richtig formatieren und die linearen Gleichungen lösen. Ich bin nicht in der Lage, einen String in einen int zu konvertieren.

Ich weiß, dass der String entweder das Format (-5) oder (25) usw. hat, also ist es definitiv ein int. Aber wie extrahieren wir das aus einem String?

Eine Möglichkeit, an die ich gedacht habe, ist, eine for/while-Schleife durch die Zeichenkette laufen zu lassen, nach einer Ziffer zu suchen, alle Ziffern danach zu extrahieren und dann zu sehen, ob es ein führendes '-' gab, wenn ja, multiplizieren Sie die int mit -1.

Das scheint mir für ein so kleines Problem doch etwas zu kompliziert. Hat jemand eine Idee?

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

Um ganz korrekt zu sein, sollten Sie die Fehlerkennzeichen überprüfen.

Kommentare (8)

Verwenden Sie die Funktion atoi, um die Zeichenkette in eine Ganzzahl umzuwandeln:

string a = "25";

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

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

Kommentare (1)

atoi" ist eine eingebaute Funktion, die eine Zeichenkette in eine ganze Zahl umwandelt, wobei vorausgesetzt wird, dass die Zeichenkette mit einer ganzzahligen Darstellung beginnt.

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

Kommentare (1)