Letztes Mal für das Verständnis: Char VS String



  • Athar schrieb:

    Na gut, dagegen möchte ich nichts sagen, erschien hier nur etwas unpassend.
    Den Erfolg dieser Methode bezweifle ich zwar, aber zumindest den Lesern hier könnten die Kommentare gezieltere Hilfestellung ermöglichen, da man Verständnisprobleme meist recht gut an schwammig formulierten oder falschen Kommentare erkennen kann.

    Genau das meine ich. Und vielleicht fällt dadurch ihm der fehler selber auf



  • silent_max schrieb:

    Hallo liebe Gemeinde.

    Ich habe jetzt seit gestern nachgedacht bzgl. char und string und hätte abschließend noch eine Verständnisfrage bzgl. der gröbsten Unterschiede.

    Habe ich folgendes richtig verstanden:

    -------------------------------------------------------------------------------
    char
    Bibliothek: <cstring>
    Datentyp: char
    Definition: Mit C-String meint man eine Folge von Zeichen des Types char, die mit '\0' abgeschlossen wird.

    -------------------------------------------------------------------------------

    string
    Bibliothek: <string>
    Datentyp: string
    Definition: String Objekte sind ein spezieller Typ von Container, speziell entworfen für das Arbeiten mit Zeichen

    -------------------------------------------------------------------------------

    Also kann man in C keinen C++ String verwenden, jedoch in C++ einen C String(char) verwenden.

    Wobei char[C-Zeichenkette(englisch string)] ein Spezialfall eines Array ist.

    Ein C++ string gehört zu einer Klasse mit vielen eingebauten Eigenschaften, um mit Strings in einem intuitiven Weg arbeiten zu können.

    Ich hoffe, dass ich es jetzt verstanden habe??

    Gruß

    Max

    das ist vom ansatz her müll.
    ein char ist ein einzelnes zeichen!



  • dhsfhfdrj schrieb:

    silent_max schrieb:

    Hallo liebe Gemeinde.

    Ich habe jetzt seit gestern nachgedacht bzgl. char und string und hätte abschließend noch eine Verständnisfrage bzgl. der gröbsten Unterschiede.

    Habe ich folgendes richtig verstanden:

    -------------------------------------------------------------------------------
    char
    Bibliothek: <cstring>
    Datentyp: char
    Definition: Mit C-String meint man eine Folge von Zeichen des Types char, die mit '\0' abgeschlossen wird.

    -------------------------------------------------------------------------------

    string
    Bibliothek: <string>
    Datentyp: string
    Definition: String Objekte sind ein spezieller Typ von Container, speziell entworfen für das Arbeiten mit Zeichen

    -------------------------------------------------------------------------------

    Also kann man in C keinen C++ String verwenden, jedoch in C++ einen C String(char) verwenden.

    Wobei char[C-Zeichenkette(englisch string)] ein Spezialfall eines Array ist.

    Ein C++ string gehört zu einer Klasse mit vielen eingebauten Eigenschaften, um mit Strings in einem intuitiven Weg arbeiten zu können.

    Ich hoffe, dass ich es jetzt verstanden habe??

    Gruß

    Max

    das ist vom ansatz her müll.
    ein char ist ein einzelnes zeichen!

    Warum ist das Müll??

    Im Buch "Der C++ Programmierer" steht auf Seite 193 im Abschnitt "C-Zeichenketten" folgendes:
    Eine C-Zeichenkette (englisch string) ist ein Spezialfall eines Arrays. Mit C-String meint man eine Folge von Zeichen des Typs char, die mit '\0' abgeschlossen wird. Diese C-Strings sind nicht zu verwechseln mit den String Objekten von Seite 86, deren Basis sie bilden. Umgangssprachlich kann >>String<< sowohl ein C++ - Stringobjekt wie auch einen C-String meinen. '\0' ist das ASCII-Zeichen mit dem Wert 0, nicht das Ziffernzeichen '0'.

    Willst Du jetzt sagen, dass der Autor Ulrich Breymann falsch liegt und somit meine Quelle, aus der ich die gröbsten Unterschiede herausgearbeitet habe, Müll ist?



  • char = 1 Zeichen
    char[] = C-String



  • silent_max schrieb:

    Warum ist das Müll??

    Im Buch "Der C++ Programmierer" steht auf Seite 193 im Abschnitt "C-Zeichenketten" folgendes:
    Eine C-Zeichenkette (englisch string) ist ein Spezialfall eines Arrays. Mit C-String meint man eine Folge von Zeichen des Typs char, die mit '\0' abgeschlossen wird. Diese C-Strings sind nicht zu verwechseln mit den String Objekten von Seite 86, deren Basis sie bilden. Umgangssprachlich kann >>String<< sowohl ein C++ - Stringobjekt wie auch einen C-String meinen. '\0' ist das ASCII-Zeichen mit dem Wert 0, nicht das Ziffernzeichen '0'.

    Willst Du jetzt sagen, dass der Autor Ulrich Breymann falsch liegt und somit meine Quelle, aus der ich die gröbsten Unterschiede herausgearbeitet habe, Müll ist?

    ein Array ist ein Datentyp
    ein String ist ein Datum welches einer Konvention zur Zeichenkettenrepräsentation folgt, der compiler unterstützt diese Konvention mit ""-literalen
    ein std::string ist ein (selbst definierter) Datentyp

    Also ist ein String nicht ein spezialfall von einem Array. Aber man kann einen String in einem Array speichern.



  • silent_max schrieb:

    Warum ist das Müll??

    [...]

    Willst Du jetzt sagen, dass der Autor Ulrich Breymann falsch liegt und somit meine Quelle, aus der ich die gröbsten Unterschiede herausgearbeitet habe, Müll ist?

    Weil für Dich vorläufig gilt:
    Es gibt keine C-Strings.



  • gary1195 schrieb:

    ein Array ist ein Datentyp
    ein String ist ein Datum welches einer Konvention zur Zeichenkettenrepräsentation folgt, der compiler unterstützt diese Konvention mit ""-literalen
    ein std::string ist ein (selbst definierter) Datentyp

    Also ist ein String nicht ein spezialfall von einem Array. Aber man kann einen String in einem Array speichern.

    Jetzt ist die Verwirrung sehr groß...

    Was hat ein Datum mit String zu tun??



  • Noch eine Empfehlung, das Buch, was Du hast, der C++-Programmierer, von Breymann
    ist zwar ein gutes Buch, aber für Anfänger nur bedingt zu empfehlen.
    Denn es ist sehr kompakt und man muß schon sehr auf Zack sein, um da mitzukommen.

    Ein wirklich gutes Buch für Anfänger ist der Primer
    http://www.amazon.de/Primer-Schneller-effizienter-Programmieren-Sonstige/dp/382732274X



  • Mit Müll ist das gemeint:

    silent_max schrieb:

    -------------------------------------------------------------------------------
    char
    Bibliothek: <cstring>
    Datentyp: char

    besser:
    -------------------------------------------------------------------------------
    C-String
    Bibliothek: <cstring>
    Datentyp: char[] oder char*
    (In cstring sind Hilfsfunktionen deklariert. Nutzen kannst du char[] oder char* immer)

    Die Definition ist richtig.



  • silent_max schrieb:

    Jetzt ist die Verwirrung sehr groß...

    Was hat ein Datum mit String zu tun??

    Datum ist die Einzahl von Daten.



  • [quote="DirkB"]

    silent_max schrieb:

    Datum ist die Einzahl von Daten.

    Achso ... ich dachte an das wirkliche Datum wie "02.01.2013"....

    Sorry für das Missverständnis


Anmelden zum Antworten