Aufgabe 8

Schreiben Sie das Programm, (Headerdatei, Implementationsdatei und Hautpprogramm) in eine Datei. Zerlegen Sie also nicht das Programm in die Einzeldateien: "Header-datei", "Implementations-Datei" und "Hautpprogramm" wie im Skript beim Beispiel zu den Klassen gezeigt:

Aufbau Ihres Programms: aufgabe8.cpp
  Deklaration der Klasse: Prototpyen 
  ...

  Hauptprogramm
  ...
  ...
  Implementation der Klasse:
  ... 
  

Design der Klasse cis_wstring

Die Klasse cis_wstring soll in der Lage sein einen wstring intern in einem Array von wchar_t (genannt Buchstaben-Memory) zu speichern.
Die Klasse soll öffentliche Methoden haben, die die Zeichenkette in das interne Buchstaben-Memory eintragen und den Inhalt des Buchstaben-Memories ausgeben können.
Außerdem soll der Benutzer in der Lage sein, abzufragen wieviele Buchstaben im Buchstaben-Memory sind.

Das bedeutet für die Implementation:

Die eigentlichen Aufgaben :

Schreiben Sie public-member Funktionen für die Klasse cis_wstring, die folgende Aktionen auf einem Objekt der Klasse cis_wstring ausführen

(Verwenden Sie möglichst string- Library Funktionen (siehe im Internet unter "http://en.cppreference.com/w/cpp/string/wide") )

  1. Eine Konstruktorfunktion, die alle Buchstaben des Buchstaben-Memory im cis_wstring auf SPACE setzt.
  2. Eine Konstruktorfunktion, die das Argument in den Buchstaben-Memory des cis_wstring überträgt.
  3. Eine void cis_wstring_to_upper() Funktion, die die Daten des cis_wstring in Großbuchstaben konvertiert.
  4. Eine bool first_is_upper() Funktion, die wahr/falsch liefert, je nachdem ob der erste Buchstaben des cis_wstrings ein Großbuchstabe ist (Verwenden Sie Libraryfunktionen zum Testen)

Nun soll folgende main() Funktion möglich sein:

int main()
{
	setlocale(LC_ALL,"") // Locale auf das interne UTF8 setzen

	wstring eingabe;
	wstring ausgabe;
	cis_wstring text;
	cis_wstring möller(L"Wie geht es Herrn Möller?");

	wcout << L"Die Frage aller Fragen ist knallhart: " << möller << endl;

	wcout << L"Bitte geben sie ein Wort ein :" << endl;
	wcin >> eingabe;
	text.set_cis_string_data(eingabe);   // eingabe in den cis_wstring 'text' eintragen
	wcout << L"Die Anzahl der Buchstaben ist : " << text.get_anzahl_chars() << endl;

	// Test, ob der erste Buchstabe großgeschrieben ist:
	if (text.first_is_upper()) {
		wcout << L"Der erste Buchstabe des Strings ist ein großer Buchstabe" << endl;
	}

	// Konvertieren auf Uppercase:
	text.cis_wstring_to_upper();
	ausgabe = text.get_cis_string_data();  // holt aus dem cis_wstring 'text' den wstring ...
	wcout << L"To Upper: Der Text ist jetzt: " << ausgabe << endl;
}