Um Strings in Zahlenwerte umzuwandeln, bietet C++ einige Standardfunktion an. Im Wesentlichen ist es int atoi(const char* str) und char *_itoa( int value,char *str, int radix ).
Am besten man schaut sich einfach den Code an.
// string char string[] = "938"; // char -> int int i = atoi( string ); // char -> double double d = atof( string );
Die Umwandlung von Zahlen in Strings geht etwas aufwendiger.
std::string str = ""; int zahl1 = 32; double zahl2 = 232.42; // int -> char char buff[10]; itoa(zahl1, buff, 10); str = buff; // double, float -> char int decimal, sign; str = _fcvt( zahl2, 7, &decimal, &sign );
Um die oberen Funktionen zu nutzen muss <stdlib.h> eingebunden werden.
Genauere Informationen zu den Funktionen kann man auf MSDN nachlesen.
Etwas schönere und komfortablere Lösung ist die Verwendung von Stream in Verbindung mit Templates.
#include <iostream> #include <sstream> template<class T> std::string toString(const T& t) { std::ostringstream stream; stream << t; return stream.str(); } template<class T> T fromString(const std::string& s) { std::istringstream stream (s); T t; stream >> t; return t; }
Damit kann man ganz angenehm arbeiten:
// string char string[] = "938"; // string -> int int i = fromString<int>(string); // string -> double double d = fromString<double>(string); // int -> string std::string str1 = toString<int>(i); // double -> string std::string str2 = toString<double>(d);
Viel Spaß damit! =)
Danke,
dein Beitrag hat mich weiter gebracht als die 1247 Seiten in meinem C++ buch
Hallo, Joachim!
Freut mich, dass ich dir helfen konnte ;)
Wie heißt das Buch?
Vielen Dank, wirklich sehr praktisch, die Umwandlung von double in string konnte ich gerade sehr gut gebrauchen!
Vielen Dank, das war mehr als nur nützlich !!!! Das hat mir dutzende Stunden Arbeit eingespart. Nochmals Danke.
Jürgen
Und nach fünf Jahren ist dieser Artikel immernoch hilfreich. Danke dafür^^