string to int ?!?
-
hallo
ich möchte ganz einfach das Zeichen im String temp in einen Integer wandeln, doch erhalte ich immer folgende Fehlermeldung:error: invalid cast from type ‘std::string’ to type ‘int’
struct tnode {
bool valid;
tnode *edges[N];
};
string temp;
dict->edges[(int)(temp)] = tn;kann mir da jemand weiterhelfen?
-
Bemühe mal die Forensuche, das Problem kommt hier sehr häufig. Steht übrigens auch in den FAQ...
-
Einmal Zahl nach String und zurückThunderbird2 schrieb:
// ... string temp; dict->edges[(int)(temp)] = tn;Ähm... du kennst die Container der C++ Standard Library?
cheers, Swordfish
-
string temp; // sollte man allerdings initialisieren dict->edges[itoa(temp.c_str())] = tn;
-
Skym0sh0 schrieb:
string temp; // sollte man allerdings initialisieren dict->edges[itoa(temp.c_str())] = tn;Wenn du schon die C-Bibliothek verwendest, nenne ich wenigstens die boost-Alternative.
Beispiel ein wenig abgewandelt.
std::string temp = "4711"; std::map<int, std::string> dictionary; dictionary[boost::lexical_cast<int>(temp)] = "Test";
-
Skym0sh0 schrieb:
string temp; // sollte man allerdings initialisieren dict->edges[itoa(temp.c_str())] = tn;Streiche itoa - setze atoi
-
von mir aus auch xD
man kanns auch mit stringstreams machen und und und...
-
asc schrieb:
Der Unterschied zwischen Theorie und Praxis ist der, das es in der Theorie keinen gibt, in der Praxis aber sehr wohl.
(Zitat aus unbekannter Quelle)Der Unterschied zwischen Theorie und Praxis ist der, dass es in der Theorie keinen gibt, in der Praxis aber sehr wohl.
man sollte auch prüfen ob es wirklich eine zahl ist.
-
Skym0sh0 schrieb:
von mir aus auch
Hauptsache, man macht es standardkonform. `itoa` gibt's auf meinem System nicht.