Die Klasse CString


Inhalt

  1. Einleitung
  2. Member-Variablen
  3. Konstruktion / Destruktion
  4. Allgemeine Fnktionen
  5. Zugriffs- und Konvertierungsoperatoren
  6. Zuweisungsoperatoren
  7. Konkatenation I
  8. Konkatenation II
  9. Ein- / Ausgabe
  10. Vergleichsoperatoren

Einleitung

Die Klasse CString stellt einen Ersatz für für Strings der Form char* dar und kann anstelle dieser verwendet werden.
Die meisten Operationen, dieauf der Klasse CString definiert sind, sollten eigentlich selbserklärend sein. Trotzdem einige Bemerkungen:

  1. Die Meber-Variable str zeigt immer auf einen leeren String der Form "". Der Zeiger ist also nie NULL.
Headerdatei:cstring.hh
Implementationsdatei:cstring.cc

Die Member-Variablen


CString();

Erzeugt ein Opbjekt vom Typ CString. Die Variable str zeigt auf einen leeren String, der nur aus dem 0-Zeichen besteht. Die Länge des Strings (gespeichert in der Variable Size) ist 0.


CString(const CString& s);

Erzeugt ein Objekt vom Typ CString, das eine identische Kopie des Objekts s ist.


CString(char ch, int n = 1);

Erzeugt ein Objekt vom Typ CString. Dem String str wird die Länge n zugewiesen, der String besteht dann aus n identischen Zeichen ch.


CString(const char* s);

Erzeugt ein Objekt vom Typ CString. Das Objekt stellt dann eine Kopie des Strings s dar, die Variable Size erhält den Wert strlen(s).


CString(const char* s, int n);

Erzeugt ein Objekt vom Typ CString. Für die Variable str werden auf jeden Fall n Zeichen Speicherplatz reserviert. Vom String s werden dann n oder strlen(s) Zeichen mit Hilfe der Funktion strncpy() kopiert. Diese Funktion ist mit Vorsicht zu genießen, da nach Anwendung Size ggf. nicht mehr die korrekte Stringlänge enthält.


~CString();

Zerstört das CString-Objekt und gibt den belegten Speicher wieder frei.


inline int IsEmpty() { return Size; };

Liefert die Länge des Strings (also den Wert Size) zurück. Ist der Rückgabewert 0, dann ist der String leer.


inline int GetLength() { return Size; };

Liefert die Länge des Strings zurück.


void DeleteAll();

Löscht den Inhalt des Strings. Hierbei wird der Variable str wieder der leere String zugewiesen, Size erhält den Wert 0.


void SetLength(int n);

Allokiert eine PSeicherplatz von n Bytes für Das CString-Objekt. Ist der bereits vorhandene String kürzer, wird er abgeschnitten, ansonsten wird er String übernommen und mehr Speicherplatz allokiert. Diese Funktion ist mit Vorsicht zu genießen, da nach Anwendung Size ggf. nicht mehr die korrekte Stringlänge enthält.


char& operator[](int i);

Liefert eine Refernz auf das i-te Zeichen des Strings.


operator const char*();

Liefert die Adresse des Strings.


CString& operator=(CString& s);

Weist dem CString-Objekt das Objekt s zu.


CString& operator=(char *s);

Weist dem CString-Objekt den String s zu.


CString& operator=(char ch);

Weist dem CString Objekt den String ch zu. Der String besrteht dann nur aus einem einzelnen Zeichen.


CString& operator+=(CString& s);

Hängt an das CString-Objekt den String s an.


CString& operator+=(char *s);

Hängt an das CString-Objekt den String s an.


CString& operator+=(char ch);

Hängt an das CString-Objekt das Zeichen ch an.


CString& operator+=(int i);

Hängt an das CString-Objekt die Zahl i, repräsentiert als String, an.


CString& operator+=(double d);

Hängt an das CString-Objekt die Zahl d, repräsentiert als String, an.


friend CString operator+(const CString& s1,const CString& s2);

Fügt die Strings s1 und s2 zu einem CString-Objekt zusammen.


friend CString operator+(const CString& s1, char ch);

Fügt den String s1 und das Zeichen ch zu einem CString-Objekt zusammen.


friend CString operator+(char ch, const CString& s1);

Fügt das Zeichen ch und den String s1 zu einem CString-Objekt zusammen.


friend CString operator+(const CString& s1, const char* s2);

Fügt die Strings s1 und s2 zu einem CString-Objekt zusammen.


friend CString operator+(const char* s1, const CString& s2);

Fügt die Strings s1 und s2 zu einem CString-Objekt zusammen.


friend CString operator+(const CString& s1, int i);

Fügt den String s1 und die Zahl i, repräsentiert als String, zu einem CString-Objekt zusammen.


friend CString operator+(int i, const CString& s1);

Fügt die Zahl i, repräsentiert als String, und den String s1 zu einem CString-Objekt zusammen.


friend CString operator+(const CString& s1 , double d);

Fügt den String s1 und die Zahl d, repräsentiert als String, zu einem CString-Objekt zusammen.


friend CString operator+(double d, const CString& s1);

Fügt die Zahl d, repräsentiert als String, und den String s1 zu einem CString-Objekt zusammen.


friend ostream& operator<< (ostream& s, CString& s1);

Schreibt das CString-Objekt auf den Stream ostream.


friend istream& operator>> (istream& s, CString& s1);

Liest das CString Objekt vom Stream istream.


friend int operator==(const CString& s1, const CString& s2);

Prüft, ob s1 identisch ist mit s2.


friend int operator==(const CString& s1, const char* s2);

Prüft, ob s1 identisch ist mit s2.


friend int operator==(const char* s1, const CString& s2);

Prüft, ob s1 identisch ist mit s2.


friend int operator!=(const CString& s1, const CString& s2);

Prüft, ob s1 nicht identisch ist mit s2.


friend int operator!=(const CString& s1, const char* s2);

Prüft, ob s1 nicht identisch ist mit s2.


friend int operator!=(const char* s1, const CString& s2);

Prüft, ob s1 nicht identisch ist mit s2.


friend int operator<(const CString& s1, const CString& s2);

Prüft, ob s1 lexikographisch kleiner ist als s2.


friend int operator<(const CString& s1, const char* s2);

Prüft, ob s1 lexikographisch kleiner ist als s2.


friend int operator<(const char* s1, const CString& s2);

Prüft, ob s1 lexikographisch kleiner ist als s2.


friend int operator>(const CString& s1, const CString& s2);

Prüft, ob s1 lexikographisch größer ist als s2.


friend int operator>(const CString& s1, const char* s2);

Prüft, ob s1 lexikographisch größer ist als s2.


friend int operator>(const char* s1, const CString& s2);

Prüft, ob s1 lexikographisch größer ist als s2.


friend int operator<=(const CString& s1, const CString& s2);

Prüft, ob s1 lexikographisch kleiner gleich ist als s2.


friend int operator<=(const CString& s1, const char* s2);

Prüft, ob s1 lexikographisch kleiner gleich ist als s2.


friend int operator<=(const char* s1, const CString& s2);

Prüft, ob s1 lexikographisch kleiner gleich ist als s2.


friend int operator>=(const CString& s1, const CString& s2);

Prüft, ob s1 lexikographisch größer gleich ist als s2.


friend int operator>=(const CString& s1, const char* s2);

Prüft, ob s1 lexikographisch größer gleich ist als s2.


friend int operator>=(const char* s1, const CString& s2);

Prüft, ob s1 lexikographisch größer gleich ist als s2.