Die Klasse CString
Inhalt
- Einleitung
- Member-Variablen
- Konstruktion / Destruktion
- Allgemeine Fnktionen
- Zugriffs- und Konvertierungsoperatoren
- Zuweisungsoperatoren
- Konkatenation I
- Konkatenation II
- Ein- / Ausgabe
- Vergleichsoperatoren
- friend int operator==(const CString& s1, const CString& s2);
- friend int operator==(const CString& s1, const char* s2);
- friend int operator==(const char* s1, const CString& s2);
- friend int operator!=(const CString& s1, const CString& s2);
- friend int operator!=(const CString& s1, const char* s2);
- friend int operator!=(const char* s1, const CString& s2);
- friend int operator<(const CString& s1, const CString& s2);
- friend int operator<(const CString& s1, const char* s2);
- friend int operator<(const char* s1, const CString& s2);
- friend int operator>(const CString& s1, const CString& s2);
- friend int operator>(const CString& s1, const char* s2);
- friend int operator>(const char* s1, const CString& s2);
- friend int operator<=(const CString& s1, const CString& s2);
- friend int operator<=(const CString& s1, const char* s2);
- friend int operator<=(const char* s1, const CString& s2);
- friend int operator>=(const CString& s1, const CString& s2);
- friend int operator>=(const CString& s1, const char* s2);
- friend int operator>=(const char* s1, const CString& s2);
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:
- Die Meber-Variable str zeigt immer auf einen leeren String der Form "". Der Zeiger ist also nie NULL.
Die Member-Variablen
- char * str
Die Variable str zeigt auf den Puffer, der den dargestellten String repräsentiert.
Diese Variable hat nie den Wert NULL. Der Puffer, auf den str zeigt, stellt also immer einen gültigen
Speicherbereich dar. Wird durch CString ein leerer string repräsentiert, dann zeigt str auf einen
Speicherbereich der größe 1 Byte, das einzige Byte hat den Wert 0 und markiert das Ende des Strings.
- int Size
Diese Variable gibt die Länge des Strings an. Da in C bzw. C++ jeder String mit einem NULL-Zeichen
terminiert, ist also der durch str bezeichnete Speicherplatz um genau eins größer, als Size angibt.
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.