![]() |
![]() |
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Mit dem hier angestrebten Programm sollen Sie die Verwendung von string-Objekten üben.
Erstellen Sie ein Programm, welches sowohl Vor- als auch Nachname des Benutzers einliest. Vor- und Nachname sollen dann in einem einzigen string-Objekt "Name" durch Leerzeichen getrennt gespeichert werden.
Das Programm soll vor den Eingaben folgendes ausgeben:
Stelle dich bitte vor!
Geiger und Alfons sind beispielhafte Eingaben des Benutzers.
Dein Nachname: Geiger
Dein Vorname: Alfons
Das Programm soll auch die Initialen (Anfangsbuchstaben beider Namen) erfassen
und etwa wie folgt ausgeben:
Hallo Alfons Geiger.
Deine Initialen sind AG.
Die Ausgabe beider Namen soll mit Hilfe des Objektes "Name" erfolgen. Die Initialen sollen einer Variablen "Initialen" zugewiesen und danach ausgegeben werden. Das Projekt soll im Arbeitsbereich "Anfang" liegen und den Namen "initialen" tragen.
In diesem Programm sind mehr als ein string-Objekt anzulegen. Statt jedes dieser Objekte in jeweils einer Zeile zu definieren, können die einzelnen Objekte auch kürzer in einer Liste aufgeführt werden. Dies gilt generell für Variable (Objekte) desselben Typs (Klasse).
Beispiel:
std::string Vorname;
kann kürzer geschrieben werden mit
std::string Nachname;
std::string Vorname, Nachname;
Auf den string-Objekten sind einige hilfreiche Operatoren definiert.
Verkettungsoperator +
Damit können Strings aneinander gehängt werden.
Beispiel:
string s1, s2, s;
Einzelne Zeichen werden in Hochkomma (Apostroph, single quotes) gesetzt,
Zeichenketten in Anführungszeichen (double quotes).
Der Verkettungsoperator arbeitet auch mit einzelnen Zeichen statt mit Strings.
cin >> s1 >> s2; // Einlesen
s = s1 + ' ' + s2; // s erhält den s1-Inhalt, Leerzeichen, s2-Inhalt
Anfügeoperator +=
Dieser wirkt wie eine Verkettung (s.o.) und eine Zuweisung.
Beispiel:
s += s2;
wirkt wie s = s + s2;
Der Operator +=
sollte jedoch effizienter arbeiten,
weil weniger Kopiervorgänge erforderlich sind.
Möglicherweise kann ein Compiler die untere Anweisung in die obere optimieren.
Auch dieser Operator kann an ein string-Objekt ein einzelnes Zeichen anfügen.
Indexoperator []
Dieser Operator dient bei string-Objekten dazu, auf einzelne Zeichen zuzugreifen.
Der in den eckigen Klammern eingeschlossene Index gibt die Stelle des Zeichens
im String an. Dabei besitzt das erste Zeichen immer den Index 0.
Beispiel:
cout << "Das erste Zeichen in s ist "
<< s[0];
Wenn auf eine Stelle in einem string-Objekt zugegriffen werden soll,
dann ist darauf zu achten, dass diese Stelle auch existiert.
Ein string-Objekt ist im Standardfall zu Anfang leer,
beinhaltet also kein Zeichen - auch nicht an der Stelle 0.