Wie kann ich umwandeln std::string zu int?

Habe nur eine kurze Frage. Ich habe mir im internet schon ein bisschen, und ich habe gefunden ein paar Lösungen, aber keiner von Ihnen arbeitete noch. Auf der Suche bei der Umwandlung von einem string in eine int-und ich meine nicht den ASCII-codes.

Für eine schnelle Lauf-down, wir sind übergegangen in die Gleichung ein, die als string. Wir sind, um es zu brechen, formatieren Sie Sie richtig und lösen Sie die linearen Gleichungen. Nun, sagen, dass, ich bin nicht in der Lage zu konvertieren einen string in einen int.

Ich weiß, dass der string im format (-5) oder (25) etc. also ist es definitiv ein int. Aber wie wollen wir-Extrakt, der aus einem string?

Einer Weise, die ich dachte mit eine for/while-Schleife durch den string, überprüfen Sie für eine Ziffer, extrahiert alle Ziffern nach, dass und dann schauen, um zu sehen, ob es zu einem führenden '-', wenn es ist, multiplizieren Sie den int mit -1.

Scheint es ein wenig kompliziert für so ein kleines problem. Irgendwelche Ideen?

  • Haben Sie versucht atoi()?
  • cplusplus.com/reference/clibrary/cstdlib/atoi
  • stackoverflow.com/search?q=convert+string+int++c%2B%2B
  • kannst du ein Beispiel?
  • Haben Sie einen Blick auf boost::lexical_cast: boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm
  • Du bist also empfiehlt er eine ganze Bibliothek, was die Sprache kann mit standard-Bibliotheken überhaupt?
  • Sonderbar genug, Ihr zu sagen, dass "Keine passende Funktion für Aufruf von 'atoi'? Werde denke, es dauert ein char nicht ein std::string?
  • wenn Sie eine std::string myString und wollen atoi, dann wollen Sie sagen atoi(myString.c_str()).
  • Okay, danke Rob 🙂
  • und die Menschen Fragen, warum, wenn Sie erzählt, dass c++ zu langsam ist 😉
  • eh?
  • wies hauptsächlich auf die boost:: lexical_cast Vorschlag(s) - Hinweis: der wink 😉
  • ist die lexikalische Besetzung ineffizient?
  • sehen JamWaffles Kommentar

InformationsquelleAutor Brandon | 2011-10-05
Schreibe einen Kommentar