2016-05-01 12 views
-5

Ist das Folgende richtig, wenn nicht dann, warum denkst du, ist nicht richtig? Alle Zeichenfolgen sind Zeichenfolgen, aber nicht alle Zeichenfolgen sind Zeichenfolgen?Strings und Zeichen in c

was ich beantworten würde und ist das folgende Recht: Ich denke, dass alle Zeichenfolgen letzte Zeichen '\ 0' haben und Programm während des Ausdruckens Zeichenfolge sieht andere Zeichen nach '\ 0' nicht, aber Array von Zeichen sind alle Zeichen einschließlich der Zeichen nach '\ 0'

+3

Wie viel ist diese Frage auf Ihre Hausaufgaben wert? – StoryTeller

+0

es ist keine Hausaufgabe.Kann ich diese Frage nicht stellen? Wenn es Ihnen leicht fällt, warum ist es schwer für Sie, nur zu antworten? Oder wenn es so einfach scheint, könnte es nur eine Hausaufgabe sein? – Vladik

+1

Wenn es wie Hausaufgaben formuliert wird und keinen Kontext oder Anstrengung von Ihnen zeigt, um es zu lösen, dann würde Ente-Eingabe seine Hausaufgaben postulieren. – StoryTeller

Antwort

1

Ein String kann in einem Array von Zeichen gespeichert werden, mit einem zusätzlichen Leerzeichen am Ende, um das Sentinel-String-Zeichen "\ 0 '" zu speichern, das das Ende des String-Werts markiert . Zum Beispiel enthalten die folgenden zwei Arrays beide Zeichen, aber nur das zweite enthält eine korrekte Zeichenfolgendarstellung.

Array von Zeichen (nicht gut geformt string): [H] [E] [L] [L] [O]

Array von Zeichen mit dem richtigen Terminierung (gut geformt string): [H] [ E] [L] [L] [O] [\ 0]

0

In C ist eine Zeichenfolge eine Definition, die mit der Standardbibliothek verwendet wird. Es ist wirklich nicht einmal Teil der Sprachdefinition im Gegensatz Array.

A Zeichenfolge ist eine zusammenhängende Sequenz von Zeichen beendet durch und einschließlich der ersten Null-Zeichen. C11 §7.1.1 1

Ein Array-Typ einen nicht leeren Satz von Objekten mit einem bestimmten Mitglied Objekttyp beschreibt aneinander angrenzend zugeordnet, die so genannte Elementart. §6.2.5 20

Alle Strings enthalten ein Nullzeichen. Ein Array von Zeichen muss kein Nullzeichen enthalten. Die Antwort auf "Alle Zeichenfolgen sind Zeichenfolgen, aber nicht alle Zeichenfolgen sind Zeichenfolgen?" sollte offensichtlich sein.