In C++ ist es meistens unproblematisch einen Datentyp in einen anderen umzuwandeln. Mit dem Inhalt einer String-Variablen kann man normalerweise keine arithmetischen Operationen durchführen. Weil ein String-Objekt kein natürlicher C++ Datentyp ist, kann der Inhalt nicht in einen anderen Datentyp umgewandelt werden.
Eine Lösung bietet die C++ Bibliothek <sstream>, die es durch das stringstream-Objekt ermöglicht, den Inhalt eine Strings in einen numerischen Datentyp oder einen numerischen Datentyp in einen String umzuwandeln. Um solche Operationen auszuführen muss die Bibliothek durch den Befehl #include <sstream> am Anfang des Programmes eingefügt werden.
Die Werte können in einem stringstream-Objekt entgegen genommen und mit dem Befehl cout ausgegeben werden. Aus dem stringstream-Objekt lässt sich außerdem Inhalt extrahieren und mit dem cin-Operator weiter verarbeiten. Um das stringstream-Objekt zu gebrauchen, muss dieses erst in seinen Urzustand zurückgesetzt werden. Das geht mit einem leeren String und dem Setzen des Status-Bits auf clear. Den genauen Zusammenhang zeigt das folgende kleine Programm.
Den genauen Zusammenhang zeigt das folgende Programmbeispiel:
Übung: Zeichenketten eingeben
Programm: convert.cpp
#include <string> #include <sstream> #include <iostream> using namespace std; int main () { string ausdruck = "100"; int nummer = 100; int num; //Zur Speicherung des konvertierten Strings string text; //Zur Speicherung des konvertierten Integer-Wertes stringstream stream; //Für die Umwandlung stream << ausdruck; //String laden stream >> num; //Nach Integer extrahieren num /= 4; cout << "Integer-Wert: " << num << endl; stream.str (""); //Inhalt leeren stream.clear(); //Bit-Flag leeren stream << nummer; //Integer-Wert laden stream >> text; //String extrahieren text += " Prozent"; cout << "String-Wert: " << text << endl; system ("pause"); return 0; }
Speichern Sie den Programmcode, kompilieren Sie anschließend das Programm und werfen Sie einen Blick auf das Ergebnis.
Dieser Artikel ist Teil unseres kostenlosen Workshops “C++ Programmieren lernen” – Geeignet für Einsteiger und Fortgeschrittene. Machen auch Sie mit und lernen Sie in 50 Artikeln, wie Sie Programme selbst schreiben!
Artikelbild: Fotolia / bramgino