kramann.info
© Guido Kramann

Login: Passwort:










4 Textverarbeitung

C++ bietet zwei Möglichkeiten, Text zu verarbeiten. Die ältere entstammt der C-Bibliothek und ist verfügbar mit "#include ". Hier wird Text in Arrays vom Typ char[] gespeichert. Jedes Element des Arrays kann dann einen Buchstaben speichern. Eine neuere Bibliothek ist verfügbar mit "#include ". Hier gibt es explizit den Datentyp "string". Während man bei der Verwendung von char[] darauf achten muss, dass das Array gross genug ist, um den gewünschten Text aufzunehmen, wird bei Verwendung von string der Speicherbereich automatisch angepasst. Da die neuere Bibliothek einfacher zu handhaben und sicherer in der Benutzung ist, wird sie hier vorzugsweise benutzt. Insbesondere können zwischen Elementen vom Typ string die Vergleichsoperatoren "==, !=, <, > ..." verwendet werden.

Leider ist das C++ Konzept für String-Objekte nicht so durchgängig umgesetzt worden, wie beispielsweise in Java. Um beispielsweise eine Zahl, die in einem Text steht und in einem String abgelegt ist, in eine double-Zahl umzuwandeln, existiert in C++ keine direkte Methode. Es muss gezwungenermassen das string-Objekt zuerst in eine Zeichenkette vom Typ char umgewandelt werden, damit die alte atof-Funktion (Ausdruck nach Fließkomma wandeln) verwendet werden kann. Kein Grund, das Kind mit dem Bade auszuschütten und keine string-Objekte zu verwenden. Die Welt ist eben nicht immer druchweg schön, hat aber viel zu bieten, wenn man bereit ist, sich daran zu gewöhnen.

Eine hier verwendete Alternative stellt noch dar, die Strings mit den Zahlen in einen Stringstream und dessen Inhalt anschliessend in eine double-Variable zu schieben. Dabei wird der String automatisch in eine double-Zahl umgewandelt.