cis_wstring
der letzten Aufgabe, verwenden Sie allerdings zum Speichern der Buchstaben nicht ein array of w_chars sondern den Container der STL <vector>. Nutzen Sie so gut es geht STL-Funktionen.
class cis_wstring { public: int get_anzahl() ... liefert die Anzahl der Buchstaben der cis_string Daten // // .... // private: vector <wchar_t> data ... alle Buchstaben der cis_string Daten int anzahl ... Anzahl der Buchstaben in data }
str++
Konvertiert die Buchstaben
eines cis_wstring
String in Großbuchstaben
--str
Konvertiert die Buchstaben
eines String in Kleinbuchstaben
str1 < str2
, die beim alphabetischen Vergleich der beiden cis_wstring
str1
und str2
str1 < str2
true liefert,
falls str1 alphabetisch kleiner als str2 ist. Ihr Stringvergleich soll eventuelle Groß- und Kleinbuchstaben nicht unterscheiden.
void translate() ...
alle Großbuchstaben in Kleinbuchstaben
und umgekehrt konvertieren und ausgeben (Verwenden Sie Libraryfunktionen). void reverse()
... dreht die Reihenfolge der Buchstaben im internen Buchstaben
Array um.bool is_palinrom()
... testet, ob cis_wstring
ein Palindrom ist.
(Groß und Kleinbuchstaben sollen nicht unterschieden werden)Nun soll folgende main() Funktion möglich sein:
int main() { // Setzen des locale auf utf-8 (Verwenden Sie locale und global ect...) ... wstring eingabe; wstring ausgabe; cis_wstring text; wcout << "Bitte geben sie einen String ein :"; wcin >> eingabe; text.set_cis_string_data(eingabe); // eingabe in den cis_wstring text eintragen wcout << "Die Anzahl der Buchstaben ist : "<< text.get_anzahl_chars() << endl; // test ob der erste Buchstabe groß ist: if (text.first_is_upper()) { wcout << "Der erste Buchstabe des Strings ist ein großer Buchstabe" << endl; // Konvertieren auf Groß/Kleinschreibung: text.translate(); wcout << "TRANSLATE: cis_string ist : "<< text << endl; // Konvertieren auf upper: text++; wcout << "TOUPPER: cis_string ist : "<< text << endl; // Konvertieren auf lower: --text; wcout << "TRANSLATE: cis_string ist : "<< text << endl; // is palindrom: if (text.is_palindrom()) { wcout << "Ich bin ein Palindrom "<< text << endl; // bitte umdrehen text.reverse(); ausgabe = text.get_cis_string_data(); wcout << L"Umgedreht: " << ausgabe << endl; wcout << "Ich bin ein Palindrom "<< text << endl; }