PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Typumwandlung: String zu int [c++]



nudelsalat
29.05.2006, 17:20
Ist ja fast schon peinlich wegen sowas einen neuen Thread zu eröffnen. :D

Ich hänge momentan beim Versuch, einer Variable vom Typ int einen String zu übergeben. Auf Google findet man zu castings in c++ entweder nur castings von grundlegenden Datentypen oder castings in Java weil jeder in seinen Typumwandlungsbeispielen c++ erwähnt und nur ein Java Beispiel bringt. ^. ^

Im folgenden Beispiel sollte also der Variable wert in der Struktur node der Wert "20" übergeben werden. Gibt es dafür irgendeine spezielle Funktion?

#include "stdafx.h"
#include "vector"
#include <string>
#include <iostream>

using namespace std;

struct Node{
int wert;
Node* parent;
Node* links;
Node* rechts;
};


int _tmain(int argc, _TCHAR* argv[])
{
vector<Node> bla;
vector<string> vStringWerte;

vStringWerte.push_back("10");
vStringWerte.push_back("20");

bla.push_back(Node());
bla[bla.size()-1].wert = vStringWerte[1];

cout << "Wert:" << bla[bla.size()-1].wert << endl << "vStringWerte: " << vStringWerte[1];

return 0;
}

Und noch eine Frage am Rande:
Gibt es eine Internetseite mit Auflistung aller Klassen und Funktionen der Standard c++ api?

Dingsi
29.05.2006, 18:15
Ich würds mit stringstream machen.


#include <sstream>
using namespace std;

...

string s = "123";
int i;

stringstream ss;

ss << s;
ss >> i;Ich hoffe, die Funktionsweise erklärt sich von selbst. Das wär IMO der C++-ichste Weg.

Zu Pseudo-2) Ich benutz, wenn ich's mal benutz, cplusplus.com (http://www.cplusplus.com/ref/)

nudelsalat
29.05.2006, 18:34
Dachte schon << ist nur für cout zu gebrauchen. Danke dir.

Ineluki
29.05.2006, 21:30
ich wuerde an der stelle einfach die standard C Funktion atol verwenden



string s = "123";
int i = atol(s.c_str());

Chrissi
11.06.2006, 09:53
Der Befehl heißt atoi, nicht atol, Ineluki. ;)

Das steht dann insgesamt für a(variable) zu i(integer)

Dingsi
11.06.2006, 10:05
Steht a nicht für array? char-Array.

atol sollte es auch geben, das wäre dann array to long ->

long l = atol(someString);

Chrissi
15.06.2006, 07:53
Achso, sowas gibt es auch? :D
Oky, wieder was gelernt.

Aber der Thread bezog sich ja auf Integer. ^^

Ineluki
15.06.2006, 14:38
long int IST ein Integer. int ist auch ein Integer, genau wie signed char, shortint, long long int, ...