Hallo und willkommen zurück.
Wir sind in einem neuen Bereich.
In diesem Abschnitt werden wir Sprechen Sie über Zeichenketten.
Sie haben mich wahrscheinlich sagen hören das Wort String ziemlich viel in der Klasse,
und Sie kann ein wenig verwirrt gewesen sein.
Eine Zeichenfolge ist wirklich nur ein Wort.
Es ist etwas eingeschlossen in doppelten Anführungszeichen.
Wir werden darüber reden, wie wir können Speichern Sie Zeichenfolgen in Zeichenarrays.
Bis zu diesem Punkt sind wir es also ziemlich vertraut mit
einem einzelnen Zeichen, dem char-Datentyp oder den Datentyp "care", wie Sie möchten um es auszusprechen. Wir wissen, was das ist, aber wir haben nicht wirklich etwas
über Wörter gelernt.
Ein einzelnes Zeichen zuweisen Als Zeichenvariable ist das Zeichen
in a eingeschlossen Paar einfache Anführungszeichen.
Wir sind damit vertraut.
Wir
haben alles darüber gelernt. In diesem Beispiel Pluszeichen entspricht plus in einfachen Anführungszeichen.
Das Wichtigste dort ist die einfache Anführungszeichen.
Das hast du auch dort gelernt ist eine Unterscheidung
zwischen einfachen und doppelten Anführungszeichen.
Also, wenn Sie Pluszeichen Variable und setzen Sie weisen
ihm etwas in doppelten Anführungszeichen zu und das Pluszeichen ist vom Typ char, das
wird nicht funktionieren, weil du nur single zuweisen kannst Zeichen für den Datentyp char.
Eine Zeichenfolgenkonstante oder ein Zeichenfolgenliteral ist eine Folge von Zeichen oder Symbolen zwischen
zwei doppelten Anführungszeichen.
Also jetzt sind doppelte Anführungszeichen wird ein neues Stück kommen.
Alles zwischen diesen Doppel Anführungszeichen werden vom Compiler
als Zeichenfolge interpretiert.
Und so kann es wirklich sein alphanumerische Zeichen, es können
Sonderzeichen sein, aber sie Normalerweise bilden Sie Wörter, die Sie sich als
Text vorstellen können.
Sie können Leerzeichen haben.
Aber alles im Doppel Anführungszeichen ist ein String-Literal.
Jedes Mal, wenn Sie angezeigt haben Eine
Nachricht mit der Funktion printf haben wir definiert Nachricht als String-Konstante.
Denken Sie an printf, das erste Argument Wir fügen dort Text ein
und haben einige Formatspezifizierer.
Das ist ein String-Konsonant.
Sie hören auch den Begriff Zeichenfolge buchstäblich ist es das gleiche.
Wir sagen also print f dies ist eine Zeichenfolge Alles dazwischen, dass
diese doppelten Anführungszeichen eine Zeichenfolgenkonstante sind und wir können es in eine oder zwei Zeilen setzen.
Sie bemerken auch, dass Sie können haben print-Anweisungen,
die Escape-Sequenzen Backslash n haben. Jetzt Dieser dritte ist ziemlich cool, was ich
gleich erklären werde.
Aber der Hauptpunkt ist, dass Sie haben den
Unterschied zwischen einfachen und doppelten Anführungszeichen zu verstehen Zitate und was da drin ist.
Mit den doppelten Anführungszeichen, Du hast Saiten.
Mit den einfachen Anführungszeichen, Du hast Charaktere.
Es gibt zwei Arten von Konstanten.
Für dieses dritte Beispiel ist dieser printf Wo wir die vier haben und dann
haben wir einen Backslash, dann ein einfaches Zitat.
Wenn du eigentlich willst Wenn Sie ein einfaches Anführungszeichen als
Ausgabe anzeigen, müssen Sie es maskieren.
Und Sie können besonderen entkommen Zeichen mit dem Backslash.
Im dritten Beispiel ist es so Sie werden
tatsächlich vier doppelte Anführungszeichen ausdrucken, die Sie schreiben. und dann noch ein doppeltes Zitat.
Der Compiler interpretiert also eine explizite doppeltes Anführungszeichen ohne vorangestellten
Backslash als Zeichenfolgenbegrenzer.
Jedes zweite Mal verwenden Sie ein Doppel Zitat, es ist Anfang und Ende einer Zeichenfolge, aber
was ist, wenn Sie wollten Zeigen Sie es an, dann müssen Sie
nur den Backslash davor setzen.
Und es wird dem Compiler sagen, hey das beendet den String nicht wirklich.
Das wollen wir anzuzeigen oder etwas, das wir
als dieses Zeichen verwenden möchten.
Auch muss man die Flucht benutzen Sequenz, wenn Sie
den Backslash auch machen wollen, weil die Backslash ist eine Escape-Sequenz.
Also, wenn Sie den Backslash sehen Backslash, Sie zeigen diesen Backslash
tatsächlich in einer printf-Funktion an.
Wenn Sie es irgendwo anders sehen, Sie weisen den Backslash einer Variablen zu
oder wie auch immer er verwendet wird.
Aber es folgte ein Backslash durch einen anderen Backslash wird
die Backslash-Zeichenfolge entkommen.
Und wieder ein Backslash und Ein String signalisiert immer
den Beginn einer Escape-Sequenz.
So ist einer für sich wird nicht angezeigt.
Dies sind Sonderzeichen.
Wenn Sie also in doppelten Anführungszeichen stehen, Möglicherweise werden die Backslashes angezeigt,
um Sonderzeichen zu vermeiden und sogar der Backslash selbst.
Hier erfahren Sie, wie sich ein String im Speicher befindet.
Eine Zeichenfolge im Speicher ist Jedes einzelne Zeichen wird
hier durch ein Bit dargestellt.
Und wenn Sie eine Zeichenfolge haben genannt dies ist eine Zeichenfolge, Sie werden es sehen, wo
die Der Raum hat etwas im Gedächtnis.
Und das solltest du auch bei beachten Das Ende des Backslashs Null
ist der Null-Terminator worüber wir reden werden.
Aber für die zweite Saite noch einmal Sie sehen alles, was in Erinnerung bleibt.
Sogar der Backslash n welcher stellt eine neue Zeile im Speicher dar.
Und dann für Sie richtig, werden Sie Beachten Sie, dass sich das Zitat im Speicher befindet.
Aber der Backslash ist nicht.
Weil der Backslash begrenzt das Zitat.
Es entgeht dem Zitat.
So sieht es also im Gedächtnis aus.
Sie sollten beachten, dass die Zeichenfolge im Speicher hat immer mindestens ein Byte
mehr für diesen Backslash Null, das ist das Nullzeichen.
Sieht auch aus wie das Diagramm auf der Unterseite ist falsch.
Sie werden feststellen, dass das "Sie" hier nicht angezeigt wird Nach dem doppelten Anführungszeichen sehen Sie das
Sie dort nicht. Das solltest du sein irgendwo da und
es trifft irgendwie zu, es ist irgendwo da, wo sie wirklich sind Nur um es zu
zeigen, sind dies die ASCII-Werte darunter und dann ist es so nur zeigen - nicht zeigen, aber Sie
wären direkt vor dem Recht.
Und darüber möchte ich sprechen ungefähr ist dieses Nullzeichen.
Es ist ein besonderer Charakter mit dem Codewert Null.
Es wird am Ende jeder Zeichenfolge hinzugefügt Damit der Compiler weiß,
wo er endet und wann Sie ihn ausführen.
Dieser Charakter ist bekannt als das Nullzeichen, und Sie
setzen nicht nur eine Null hinein Sie können einen Backslash Null setzen.
Und genau das war dabei vorherige Folie ganz am Ende.
Und es könnte überall sein eigentlich in Erinnerung.
Und je nachdem wo es ist Speicher, eine Funktion wird gehen
und schauen, bis sie das sieht Backslash Null und es kann es anzeigen oder
manipulieren, wenn Sie sind mit verschiedenen String-Funktionen.
Es ist sehr wichtig dieses Nullzeichen.
Eine Zeichenfolge wird immer beendet durch ein Nullzeichen.
Die Länge eines Strings ist also immer eins größer als die Anzahl der
Zeichen in der Zeichenfolge.
Dies wird sehr wichtig werden wenn wir wenn wir Zeichenarrays verwenden
und die Größe der angeben Array Die Array-Größe muss immer eins größer
sein als wie viele Zeichen, die Sie aufgrund dieses
Nullzeichens speichern möchten.
Wir haben auch ein Konzept von Null über die wir nicht
wirklich ausführlich gesprochen haben.
Es kommt normalerweise ins Spiel wenn
wir über Zeiger sprechen, aber die Null nicht verwechseln Zeichen mit dem Schlüsselwort null.
Es gibt also ein Null-Schlüsselwort in einem von die Include-Header, die Sie verwenden können.
Und das ist ein Symbol dafür stellt eine Speicheradresse
dar, die auf nichts verweist.
Also benutzt du es, wenn du wenn Sie Zeiger verwenden.
Ein Nullzeichen ist gerecht ein String-Terminator.
Wir werden mehr über Null reden, wenn wir Sprechen Sie über Zeiger, aber stellen
Sie sicher, dass Sie den Unterschied zwischen verstehen Nullzeichen und das Schlüsselwort null.
Sie können ein Backslash-Nullzeichen hinzufügen explizit an das Ende einer Zeichenfolge und
dadurch werden zwei Zeichenfolgen und erstellt Ich werde Ihnen zeigen, wie das geht, wenn wir
über das Definieren von Zeichenarrays sprechen.
Hier ist ein Beispiel mit der Nullterminator.
Wir haben hier einen Druck f, und wir sagen das Zeichen und dann den
Backslash Null, der eine Zeichenfolge beendet.
Was also passieren wird, ist, wenn Sie Kompilieren Sie
dieses Programm und führen Sie es aus.
Die Ausgabe, die Sie erhalten, ist Die erste Zeile ist das Zeichen und dann der Backslash o Es wird ein Ende geben
und nur der erste Teil von Die Zeichenfolge wird angezeigt.
Mehr wird es nicht geben Ausgabe, weil print denkt, dass es das
Ende der Zeichenfolge ist.
Es druckt also nur den Charakter aus.
Die Ausgabe wird danach beendet diese ersten beiden Wörter, weil die
Funktion die Ausgabe einmal beendet es erreicht das Nullzeichen.
Also der zweite Backslash Null am Ende der Zeichenfolge, auch wenn Sie
keinen Backslash Null sehen hier direkt vor dem endenden doppelten
Anführungszeichen, direkt nach dem Zeichenfolgenpunkt, Es gibt immer noch eine, aber
Sie werden nie erreicht.
Es gibt also einen impliziten Nullterminator am Ende des Strings und des printf, damit er
weiß, wo er enden soll.
Und wenn Sie einen weiteren hinzufügen, ist es nur wird bis zu diesem ersten anzeigen.
Das ist also der erste Nullterminator in der Zeichenserie gefunden
markiert immer das Ende der Zeichenfolge.
Verstehe also diese Nullzeichen.
Dies war nur eine kurze Übersicht zu beschreiben, was
eine Zeichenfolge ist und das zu verstehen Zeichenfolgen stehen in doppelten Anführungszeichen.
Und ich möchte auch beschreiben das Nullzeichen.
In der nächsten Vorlesung werden wir Verstehen Sie, was Zeichenfolgen in
Bezug darauf sind, wie Sie erstellen können Diese unterscheiden sich von diesem
einen Variablentyp zum Speichern von Zeichenfolgen.
Vielen Dank.