C++: String in int, float, double und zurück konvertieren
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! =)
- Kategorie: Programmieren
- Letzte Aktualisierung am: 19. July 2010
- 3 Kommentare




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!