Was ist der Unterschied zwischen ein String und ein Char?

3 Antworten

Char = EIN Zeichen, bspw. 'f' oder '#'
String = VIELE Zeichen, bspw. "Hallo!"

(Eigentlich ist ein String ein char-Array, vllt hilft dir das ja auch bei der Vorstellung.)

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Char = ein Zeichen, String = kein, ein, oder mehrere Zeichen, Char = Primitive, String = Klasse


In C++ spricht man tatsächlich oft von strings und meint damit char*

grtgrt  30.06.2016, 19:00

So gesagt ist das falsch. Richtig ist:

  • In C/C++ versteht man unter einem String eine Folge von Werten des Typs char, deren Ende durch ein NULL-Byte gekennzeichnet ist.
  • Nur die Adresse eines Strings ist Wert vom Typ char* .
1
TeeTier  01.07.2016, 07:08
@PerfectMuffin Naja, außer wenn sie in einer Klasse gekapselt sind, dann evtl. schon ... zum Beispiel std::string. :)

Bei C verstehe ich unter String das, was grtgrt gesagt hat.

Bei C++ hingegen nur besagte std::string Klasse. Je nach Kontext kann das aber auch std::wstring, std::u16string oder std::u32string sein. Meistens hat man es bei C++ ja nur mit String-Literalen zu tun, die dann sofort in eine der besagten Klassen verpackt werden.

Von Boost, der Win-API und anderen Bibliotheken wollen wir jetzt mal gar nicht erst anfangen. :)

Will man bei C++ darauf hinweisen, dass man sich auf C bezieht, dann sagt man ja i. d. R. "C-String", auf den dann mithilfe von char-Zeigern zugegriffen wird.

Naja, aber im Grunde genommen ist es ja einfach nur ein Speicherbereich, der aufeinanderfolgende Zeichen enthält. Meistens auch noch mit Null terminiert. (Es sei denn, man arbeitet mit Pascal-Bibliotheken ... aber das ist dann wieder etwas anderes ...)

0