Wir sind fast: ANDI PENG durch alle psets. In der Tat, durch die Mehrheit wir der schwierigsten psets. So sind wir eigentlich nur gehen, um Art von Brise durch die nächsten paar Wochen. Wir werden anfangen zu sprechen über unsere Abschlussarbeiten, die Ereignisse kommen in den nächsten Wochen. Und das Leben wird ein Kinderspiel. Also nicht zu viel heute. Hoffentlich wird tatsächlich Brise durch die Tagesordnung der heutigen, und dann von hier mit etwas Zeit zu ersparen. Außerdem möchte ich mich entschuldigen das Fehlen von Süßigkeiten einander. Ich weiß nicht, warum. Aber in der Woche vor Halloween, ich habe vergessen, Süßigkeiten. Also ich bin eigentlich nur eine große Enttäuschung für Sie im Augenblick. Weil ich wörtlich erinnern candy für jede einzelne Klasse, aber Halloween. Aber nächste Woche werde ich bringen die doppelte Menge von Süßigkeiten um sich für das, alles für Sie. Es wird großartig sein. So habe ich ein paar Ankündigungen über eine gewisse Zeitplanung. Ich habe einige Scheduling-Probleme. Dann werden wir auf dem Weg zu darüber reden, was heißt chmod. Wir werden darüber reden schnell TCP / IP HTTP. Und dann werden wir unseren Code Eigene Website mit HTML und CSS. Und dann werde ich tatsächlich vielleicht verlassen wie 20 Minuten bis etwa pset6 sprechen. Weil pset6 ist tatsächlich eine Menge von Sachen, die wir schon zuvor gesehen, aber ich wollte zu aktualisieren einige dieser Konzepte als auch zu lehren ein paar neue Funktionen. Cool. Also zunächst einmal, Willkommen zurück von Pause. Ich hoffe, du bist Pause war angenehm. Möchten hast du dich auf Pause zu tun? ZIELGRUPPE: ging nach New York. ANDI PENG: Sie ging nach New York? Ich denke, dass die Hälfte unserer Schule ging nach New York. Es ist alles in Ordnung. Ich die meisten meiner Pause verbracht Bewegungsmangel im Bett Netflixing. Und es war eine gute Zeit. Aber wir sind jetzt zurück, zurück in Sitzung zurück in den Swing der Dinge. Wir haben einen Grund an diesem Freitag um die Mittags pset. Ich denke, dass Sie bereits haben hob Ihr Quiz, yeah? Also alle anderen, hat kein Quiz hatten, Bitte kommen Sie und erhalten Sie Ihre Quiz von mir am Ende des Abschnitts. Oder verfolgen mich auf dem Campus. Ich werde es mit mir irgendwo. Unser letztes Projekt vor-Vorschlag auch. Also für diejenigen von uns, die noch nie getroffen haben diese Klasse vor, der Schlussstein des CS50 ist sehr stark in diese gipfelten Großprojekt, die Studenten vor. Und der Vorantrag, nur eine allgemeine Vorstellung von dem, was man sich wünschen könnte, um zu tun ihre Projekt, ist diese Idee durch Montag, nächsten Montag am Mittag. So ziemlich, David ich denke, sprechen mehr dazu im Vortrag wenn er nicht bereits. Und es gibt eine feste Seite auf unserer Website erklären alle Anforderungen des Projekts. Aber im Grunde, Pick jedes Thema, das Sie haben im interessiert worden in Ihrer Zeit hier bei CS, ob es Gaming oder Design oder Video-oder nichts. Und man kann wirklich Art von jetzt einige der Lektionen anwenden dass wir hier in CS50-- gelernt hallo, welcome-- so ziemlich die Durchführung eine endgültige Projekt Ihrer Wahl. Alles, was aufgrund der Montag nur eine kurze Klappentext per E-Mail zu mir, ein schneller Satz, wie, hey, Andi, Ich bin wirklich interessiert an der Gestaltung ein Spiel, das dies für iOS tut. Cool. Lassen Sie mich einfach Ihren kurzen Anfangs Ideen für Ihre Abschlussarbeiten. Und wir werden durch reden, ob das ist eigentlich eine gute Idee ist oder nicht, wenn es eine praktikable Idee ist oder nicht. Aber gerade die Pre-Vorschlag ist auf nächsten Montag. pset6, unsere schöne web--, das ist falsch. Pset7? pset6? Es ist pset6, nicht wahr? pset6, unser Web-Server ist aufgrund Freitag Mittag mit dem späten Tag. Bürozeiten wieder normal von Montag bis Donnerstag von 8.00 bis 11.00 Uhr in dieser Woche. Ich denke, für die Commons die nächsten drei Nächte. Cool. Bevor wir in Material hatte, hat jemand Fragen, Witze, Geschichten? Was haben Sie für die Herbstferien zu tun? Publikum: Was kann ich tun? ANDI PENG: Bereits es ist vor Ewigkeiten tatsächlich. Christ ging nach New York. Ich war hier und Netflixed. ZIELGRUPPE: Oh, ja, ich war hier. ANDI PENG: Oh, OK. Publikum: Ich erinnere mich nicht was konkret. ANDI Peng: Das ist in Ordnung. ZIELGRUPPE: Netflixing wahrscheinlich. ANDI PENG: Netflixing. Ja, es ist eine gute Zeit. OK. Gut. Haben Sie Fragen vor wir ins Material zu springen? Außerdem werden wir versuchen, Beschleunigung durch den Bereich heute nicht zu viel, um zu decken. Und hoffentlich werden wir bekommen hier ein bisschen zu früh. Sorry für die nicht Süßigkeiten, auch. Ich bin eine echte Enttäuschung vor allem während der Halloween. Gut. Cool. Also werden wir darüber zu sprechen, ein Kommandozeilen-Argument aufgerufen chmod. chmod, ist alles, es ist nur ein Unix-System Anruf von der Kommandozeile durchgeführt Dateiberechtigungen zu ändern. So zum Beispiel, haben wir Alle begegnet eine Seite wie diese wahrscheinlich irgendwann in unsere Lebensspanne des Seins ein Internet- Benutzer, denen unsere Webserver gegeben uns den Fehler des Verbotenen. Sie sind nicht berechtigt, den Zugang, bla, bla, bla, auf diesem Server. All das wirklich bedeutet ist, dass die Berechtigungen daß wurden, die an was auch immer Seite, die Sie versuchten, den Zugang waren nicht offen. So ziemlich, chmod ist die Art, in der wir können diese Berechtigungen ändern für jeden geben, der Benutzer, die Gruppe, oder die Welt oder irgend Kombination dieser Zugang auf bestimmte Dateien, Verzeichnisse, etwas wirklich, jede Art von System ein Betriebssystem. Also, wenn eine der Jungs haben Computer, wenn Sie das Gefühl, wie folgt mit mir heute, völlig fühlen sich frei, geben Sie einfach die Dinge im. Wenn nicht, können Sie einfach nur rumhängen. Also werde ich tatsächlich ziehen meine Terminal jetzt. So der auszuführende Befehl chmod oder zumindest nur Zur Liste die Berechtigungen Ihres Dateiverzeichnis, ist nur ls-l. Wie Sie sehen können, eine Reihe von Zeug erscheint von denen die meisten ist wichtig, um uns auf der linken Seite hier. Ihr Jungs sehen eine Reihe von rs, ws, 1 /. Ja. Das sind im Wesentlichen nur alle Dateiberechtigungen zu dem, was bestimmte Verzeichnisse zu erklären und Dateien in Ihrem System haben. Also lassen Sie uns zurück zu die Strom Punkt hier. So dass zusätzlich zu den Dateinamen wie euch kann auf der rechten Seite, Wir schauen, um im wesentlichen zu sehen nur die Spalte auf der linken Seite. So dass zusätzlich zu einfach die Dateinamen, die wir können die Berechtigungen von Dateien sehen, die ihre Eigentümer-Gruppe, der Gruppenname, das Datum , dass die Datei zuletzt modifiziert, et cetera. Sie können eine Menge Dinge mit chmod zu sehen. So ist die Art, wie wir lesen chmod ist, dass der erste Buchstabe wir ziemlich viel zu ignorieren in Bezug auf die Leseberechtigungen. Der erste Buchstabe zeigt uns genau das, was Art des Systems wir Zugriff. d, in diesem Fall ist ein Ordner oder Verzeichnis. So dass wir wissen, dass mein derzeitiger Arbeitsplatz Abschnitt sieben war ein Verzeichnis. Und dann drei sehen Sie Dreiklänge, im Wesentlichen nur drei Sätze von drei Zeichen. Und Sie jedes als ein wenig zu denken. So müssen Sie nur noch drei Sätze drei Bits, neun Bits insgesamt. Sie behandeln sie in Dreiergruppen. So ist die erste Gruppe von drei ist immer Ihren Benutzerberechtigungen. Ihre zweite Gruppe von drei ist immer die Gruppenberechtigungen. Und Ihre dritte Satz von drei ist immer, wie die Welt, die überall Berechtigungen. Also ich denke, die einfach Frage ist, was ist der Unterschied zwischen Benutzer- und Gruppen. Der Hauptunterschied zwischen Benutzer- und Gruppen- ist, dass ein Benutzer nur Sie persönlich Zugriff auf alles, was es jetzt ist. Eine Gruppe kann sein, wenn Sie mehrere Benutzern auf einem Computer, zum Beispiel. Alle von ihnen können als eine Gruppe behandelt werden. Und dann ist die Welt gerade die Welt, jeder. So dass wir später sehen können, wie wir können, ändern die in unterschiedliche Berechtigungen. So ziemlich genau, wir sind werde noch konzentrieren auf dem Teil auf der linken Seite, wo Verzeichnis für CS50 wir sehen drwx, wo die r bedeutet nur, es ist lesbar. Die w bedeutet nur, es ist beschreibbar. Und dann die x gerade bedeutet, dass es ausführbar. Sie würden denken, es Art der ist nicht sinnvoll. Es sei e sein. Aber x eigentlich ganz funktioniert ein wenig besser, da kann man es besser erinnern. So sind die drei Arten von Dingen, die Sie tun können, können Sie entweder eine Datei zu lesen, können Sie die Erlaubnis, einen zu schreiben Datei, oder Sie können die Berechtigung haben , eine Datei auszuführen. Und so ist die Art und Weise, dass wir tatsächlich stellen die in Bits die Zahlen 4, 2 und 1. Also alles, was lesbar ist durch die Anzahl der 4 dargestellt. Alles, was beschreibbar ist ist in 2 dargestellt. Und alles, was ausführbar ist wie durch 1 dargestellt. In diesem Sinne können wir auch stellen diese numbers-- hallo, willkommen, auf eine andere Weise. Es tut uns leid. Vor allen, ich bin zu gehen entschuldige mich im Namen aller Eingabe jetzt die Klasse. Ich habe vergessen, Süßigkeiten heute. Tut mir leid, ich bin ein Versager in dieser Woche von Halloween. Ich werde die doppelte Menge an zu bringen candy nächste Mal zu machen das wieder wett. Aber egal, sorry etwa, dass Jungs, sorry. So ist die Art und Weise, dass wir tatsächlich Eingangs auf unseren Befehl das Argument ist, dass wir kann chmod Gruppe Slash Berechtigungen zu tun, wo die Gruppe ist nur, was auch immer Gruppen wir versuchen zu ändern. Und die Berechtigungen was wir wollen, um es hinzuzufügen. So zum Beispiel die Plus fügt Berechtigungen, und subtrahieren nimmt Berechtigungen. Und die Art der Gruppe haben wir unsere a für alle, u für Benutzer, g für Gruppen, oder o für die anderen. Es ist ein bisschen abstrakt jetzt. Aber wir werden über ein paar Beispiele zu gehen nur um diese ganz schnell zu demonstrieren. Jeder gut auf diese Rutsche, so kann ich weiter? Cool. So zum Beispiel, rwx. Bevor wir über das, was sie repräsentiert zu sprechen, vor allem was rwx das? Wenn Sie sehen, dass dieser bestimmte Datei über Berechtigungen von rwx, was bedeutet das die Person könnte in der Lage sein zu tun? ZIELGRUPPE: Lesen, Schreiben und Ausführen. ANDI PENG: Ja, genau. Sie können schreiben, lesen und ausführen. Da alle drei derjenigen Zeichen vorhanden sind. Wenn wir also gehen Sie voran und Diskussion darüber in Bezug auf die Bits, die Rwx kann auch als 700 dargestellt werden. Weil, wie Sie in jeder sehen können Art von Datei-Verzeichnis Erlaubnis, es gibt drei Triaden. In diesem Fall ist nur die erste Trias hat alles, was es gibt. So dass in diesem Fall ist die R 4, W 2 ist, und die x-1 ist. Wenn Sie solche addieren, es ist 7. Und so, wenn Sie konvertieren es binär, es ist 700. Weil 7 ist die erste Dreiklang. 0, es gibt nichts vorhanden in der zweiten Triade. Und dann gibt es nichts vorhanden in die dritte Triade, das ist also ein weiterer 0. Also im gleichen Sinne, ein Bündel von Triaden kann nur in Bits dargestellt werden, nur im binären als auch. So 700 bedeutet genau dasselbe wie rwx ------ in Bezug auf Berechtigungen. Jeder klar auf, dass? Cool. Und so chmod 111 geben würde, die Berechtigungen für die Datei? Gebt euch ein paar Sekunden, um diese zu konvertieren. Denken Sie daran, das erste Triade ist für den Benutzer. Der zweite Dreiklang ist für die Gruppe. Und die dritte Triade ist für jeden etwas. Und so chmod 111 geben würde, die Art der Berechtigungen und an wen? Nehmen Sie ein paar Sekunden, um denken Sie darüber nach und kommen zurück. Ja. Publikum: So kann jeder sie auszuführen. ANDI PENG: Yup, genau. ZIELGRUPPE: Aber niemand kann lesen und schreiben. ANDI PENG: Und fühlen Sie sich frei um allen zu erklären wie Sie zu diesem Schluss gekommen. ZIELGRUPPE: Nun, für den Benutzer, die Gruppe, und die Welt, es ist alles 1, das ist der Code für die ausführbare Datei. ANDI PENG: Ja, genau. Also 1, in diesem Fall ist alles, was wir wissen, dass das die ausführbaren Code. Weil Lesen ist 4. Schreiben ist 2. Und die ausführbare Datei ist 1. So wird alle drei Dreiklänge sind 1, dass bedeutet, dass in der Welt, an den Benutzer, und zu der Gruppe, sie sind alle ausführbaren Datei. Jeder gut mit, dass? OK. Und so ist die zweite Möglichkeit, dass wir tatsächlich schreibe auch Sie konnte einfach chmod tun a plus x. a bedeutet, alle oder alle. Das Plus bedeutet Verzicht Berechtigungen. Und dann die x bedeutet, ausführbare Datei. Es gibt also zwei Befehle sind eigentlich identisch. Also, wenn Sie ausführen möchten dies in Ihrem Endgerät, Sie chmod 111, Namen zu tun Ihr Verzeichnis oder die Datei. Oder Sie tun können, chmod ein Plus x, Name des Verzeichnisdatei. Die gleiche Sache, nur ein einfacher Weg, vielleicht für einige zu stellen oder zu ändern Dateiberechtigungen. Jeder OK mit chmod bevor wir weitermachen? Cool. So, jetzt werden wir in einen Kopf einige Dias von sehr abstrakten Begriffen dass ich ziemlich viel gehen, um durch Wind. Und es ist völlig OK, wenn Sie nicht alles verstehen. Selbst jetzt, habe ich noch nicht wirklich alles verstehen komplett. Aber es ist mehr zu bekommen Die Top-Level-Verständnis der, wie einige dieser Dinge funktionieren. So werden wir sprechen schnell über TCP / IP, Das ist nur Transmission Control Protokoll Slash Internet Protocol. Daran erinnern, vom Vortrag, David, hat er dich lehren das Beispiel, in dem er übergeben die Notizen in einem Umschlag bis an die Spitze des Hörsaals gerne? So in der Law School Auditorium David zeigte im wesentlichen , wie TCP / IP arbeitet in dem Sinne, dass alle es ist ein Weg, damit die Daten hat in einem Server ausgeliefert oder über das Internet. So in dem Beispiel der Hüllkurve und die Nachricht kann der Benutzer am Ende konnte sehen, dass, oh, ich brauchte, um erhalten vier Informationspakete. Aber ich eigentlich nur drei erhalten. Das heißt, ich muss fehlen ein. Und einer wurde nicht geliefert. Und so TCP / IP über das Internet, über Ihren Computer und dem Server, tut genau dasselbe. Denn es macht nicht angeben, ein Rahmen, in dem ein verlorenes Daten Pakete können erneut gesendet und empfangen werden. Wie auf dem Internet, wenn Sie versuchen, um Dateien online zugreifen oder Dateien versenden an Ihren Freund oder schauen Sie auf Web- Browser, Tausende und Abertausende der Milliarden und Abermilliarden Byte-Daten werden pro Millisekunde übertragen. Und es ist wirklich sehr, sehr verwirrend. Und es ist wirklich schwer, tatsächlich wissen, was gesendet wurde und was nicht gesendet. Und so TCP / IP nur spezifiziert ein zusammenhängender Rahmen in denen Sie Ihre Web- Browser und dem Server kann Art von Kommunikation miteinander, genau stellen Sie sicher, dass Pakete alle hier und nichts ist verloren und alle Daten, die Sie angefordert ist eigentlich richtig angezeigt. Jeder OK auf nur, dass sehr kurze hohem Niveau zu verstehen? Cool. Also werden wir bewegen ins Gespräch über HTTP, die ist nur Hypertext Transfer Protocol. HTTP, ist alles, was auch immer es ist, jede Seite oder eine Datei auf Ihrer Website zugegriffen wird, der Server eine HTTP-zurück Statuscode in Reaktion auf die Anforderung, sicherzustellen, dass entweder, oh, dieser Antrag durchgemacht. Und alles ist richtig angezeigt. Oder, oh, nein, 404. Etwas ist schief gelaufen. Oh, ich kann nicht angezeigt werden. Alles, was es ist, dass, was auch immer Sie zugreifen möchten, verwenden als der Benutzer versucht, zuzugreifen, auf der internet-- nur dafür, dass dass Sie entweder erfolgreich sind abgerufen, was auch immer es war oder nicht erfolgreich abgerufen, was auch immer es war. Und so ist die HTTP-Status Code liefert Ihnen gerade ein Mittel, um in der Lage zu wissen, ob oder nicht erfolgreich war oder nicht. So zum Beispiel, ein Beispiel Anfrage. Hier können Sie sehen, es ist in der Regel in der Regel vier Zeilen. Wir haben eine GET HTTP 1.1, das nur das Verfahren die Anfrage-URL, das Protokoll Version, der Feldname, und der Feldwert. Also keine Notwendigkeit, komplett merken hier nichts. Nur irgendwie vertraut zu machen sich mit, wie diese aussehen. In diesem Beispiel wird der Verfahrensanforderungs URL ist nur unabhängig Anfrage Sie senden den Server. Wie, hey, Server, ich möchte wirklich Zugang yadda, bla, bla, HTTP-Seite. Die Protokollversion ist nur, was auch immer Version Ihrer Host oder Server wird über den Zugang zu Informationen. Der Feldname ist die Website oder der URL, die Sie zugreifen möchten, in diesem Fall www.apple.com. Und der Feldwert gerade in der Regel Name, Wert. Und es kann jede Art von Kombination sein von Buchstaben oder Zahlen oder was auch immer. Also eine typische Anforderung, so dass was Ihr Computer tatsächlich an den Server sendet, die, sagt hey, Sie wissen, was ich brauche diese angezeigt wird, das ist die Art der Anfrage dass sie tatsächlich empfangen. Ein Beispiel dessen, was die Reaktion würde Server zu schicken Ihnen zurück wäre so ziemlich das gleiche Sache, außer mit einem Statuscode an der Spitze. So 200, 2 0 0 ist immer den Statuscode für OK. Wie, OK, dieser Antrag durchgemacht. Sie waren in der Lage für den Zugriff auf alles richtig. Das leben ist gut. Das Leben ist gut. Alles ist ganz gut. Und so einfach sagt, Ihren Browser und Ihr Server, hey, alles ist gut. Ich habe alle Informationen, die ich brauche. Cool. Aber das Problem ist manchmal Probleme auftauchen wenn Sie have-- dauern Ich denke, Ich sprach über Duplikate. Sie haben weniger gute Antworten. So zum Beispiel 404 ist die Seite nicht gefunden. Sie haben manchmal eine verbotene Zugang. Sie haben verschiedene andere Statuscodes, die ich sicher, Sie haben alle gesehen, wenn Sie versuchen, Forschung über das Internet tun. Und der Browser gibt Ihnen das, nein, nicht zugreifen kann. Und du bist wie, na ja, Scheiße. Also einfach ziemlich viel, da ist einige ziemlich gemeinsame Statuscodes. Vielleicht machen Sie sich , mit dem diejenigen, die sind. Die lustigste eine, Ich denke, dass ich je gehört habe von--, wenn Sie geschehen, sehen alle von ihnen online, aus irgendeinem Grund gibt es tatsächlich eine echte Statuscode genannt 418 Ich bin eine Teekanne. Ich googeln, wo die Ursprung Dieses wurde aus. Und anscheinend einem April Fools ' Tag ein paar Jahrzehnten, jemand dachte, es wäre hilarious um einen neuen Statuscode genannt 418 erstellen Ich bin eine Teekanne. Legitim, den Namen der diese Code aufgerufen wird Ich bin eine Teekanne. Ich vergesse, welche Seite Sie haben gehen, um tatsächlich machen dieses Display. Aber anscheinend, können Sie tatsächlich erhalten einen Statuscode von mir eine Teekanne irgendwie durch, etwas zu tun. Also gibt es Hunderte und Hunderte von Status-Codes. Einige von ihnen machen mehr Sinn als andere. Aber ziemlich genau vertraut zu machen sich mit den gebräuchlichsten. Das angeforderte Entität Körper kurz und dick, anscheinend. Also manchmal gibt es mehr erschreckende Fehler, als ich eine Teekanne. Aber das ist eine, die ich schätze, Sie Art von Hoffnung zu treffen. Aber ich glaube nicht, dass man so will. Jeder gut auf nur Status Codes, Anträge, Verfahren, Herstellung sicher, dass Informationen ordnungsgemäß zugestellt werden? So, jetzt sind wir den Übergang gehen in einer Spaßteil des § heute wo wir über HTML ein wenig sprechen. HTML, allem ist es Hyper Auszeichnungssprache. Es ist nur die Standard-Sprache Sie alle Web zu erstellen verwenden Seiten im Internet. So dass jeder Web-Seite, was ist Ihre Lieblings-Web-Seite? Was ist Ihre Lieblings-Webseite? ZIELGRUPPE: [unverständlich]. ANDI PENG: Es tut uns leid? ZIELGRUPPE: Tumblr. ANDI PENG: Tumblr. So Tumblr ist in HTML geschrieben. Und so werden wir tatsächlich durch zu gehen und spielen, um mit einige dieser Dinge später. So ziemlich alles, was Sie müssen lernen, zu wissen, HTML schreiben, können Sie wahrscheinlich nur Google auf dem Internet. HTML, es ist nicht ein Programm wie C in dem Sie Variablen zu erstellen und zu tun coole Dinge mit ihm. Es ist eher einfach, oh, das ist, wie ich wollen die Dinge auf meiner Webseite erscheint. Und ich werde einfach es in. Und es geht um Styling. So HTML, in gewissem Sinne, es ist wie eine Formatierung oder Template-Sprache. Es ist sehr viel einfacher. Es ist viel einfacher zu erlernen, viel einfacher zu schreiben, in als der typische Programmier Sprache, sehr einfach, sehr benutzer zugänglich und freundlich. So dass wir eigentlich vor sich geht, um zu spielen rund, schreiben unsere eigenen Seiten heute. Doch bevor wir beginnen, möchte ich nur gehen Sie über einige kurze Best Practices. Da HTML ist so einfach Sprache und weil selbst wenn Sie ein paar Dinge falsch machen, kann es manchmal nicht bemerken, wir sicherstellen, dass wir wollen, tatsächlich in unseren Best Practices anhaftende um sicherzustellen, dass Dinge, die könnte um zu gehen, aber sind nicht immer gehen, um nicht richtig gehen sicherstellen, dass sie minimiert sind. So ziemlich sicher, Ihre Schließung alle Tags wenn Sie in HTML zu schreiben. Wenn Sie öffnen ein Körper, stellen Sie sicher, du bist Schließen Sie es mit einem Körper irgendwo. Sie wollen sicherstellen, dass Ihr Web-Seite überprüft, indem was heißt das W3 Validator. Sie können einfach Google, die online, und es gibt einen Link darauf. Und dann hast du zu wollen, separate HTML, die ist Ihr Markup-Sprache aus Stil, dem die CSS Sprache ist, dass David gezeigt, dass wir auch gehen, um ein wenig mit Vortrag zu spielen. Cool. Also, wenn Sie ausführen möchten HTML auf dem CS50-Appliance, wir werden einen Lauf Programm namens Apache, die alle es ist nur eine gebaut Web-Server, dass jeder in CS50 Zugriff hat. Wir nennen es apache50 nur weil wir mag alles 50 in CS50 nennen. So ist die Möglichkeit, dass Sie die Web-CS50 starten Server, indem Sie auf Befehl Linie apache50 starten dot. Und wenn Sie es auf jeder enden soll Zeit, müssen Sie apache50 Ende keinen Punkt. Und Sie einfach Enter drücken. Und es sollte hier oben in Richtung früh. Jep. Also ich werde einfach schnell über zu gehen ein Beispiel für eine wirklich kurze Web-Seite. Und wir gehen zu verbringen wie 10, 15 Minuten Spiel rund schreiben unsere eigenen Web-Seiten. OK. Also hier in der IDE-- kann jeder sehen, dass? Nicht wirklich. Hier, ich heranzoomen. Ich habe gerade diese kurze Vorlage bekam hier mit nichts wirklich in ihm. Wir sind gerade dabei, schnell zu schreiben ein HTML-Programm, in dem wir gerade sagen hallo zu der Welt. Also dasselbe wie in C, jetzt sind wir nur gehen, um es in HTML zu tun. Will jemand eigentlich nur versuchen, dass sie mir die erste, was Sie müsste in einem HTML-Dokument zu setzen? Ja. Publikum: Die Klammern, die [unverständlich]. ANDI PENG: Yep. Also etwas, das sehr einzigartig ist HTML, die wir in der Regel traditionell nicht in andere Befehls begegnen Line-Level-Programmiersprachen ist, dass wir tatsächlich geben Sie den Dateityp dass dies sein wird, an der Spitze der unseren Code. Also in diesem instance-- Ich denke, das ist der richtige Befehl, nicht wahr? Jep. An der Spitze, Sie wollen einfach nur schließen Knall DOCTYPE html in Klammern nur um Ihren Computer zu sagen, hey, wo sie nach. Und HTML-Dokument kommt. Und dann, wie wollen wir damit beginnen, unsere Datei? Wenn wir wollen, nur um Hallo zu sagen, haben eine Web-Seite, die sagt hallo an die Welt, wie gehen wir über den Bau dies gehen? Eigentlich, lassen Sie uns bei Google schalten. Und wir können tatsächlich tun. Jep. Da gehen wir. So HTML. Wie Sie sehen können, ist mein Browser tatsächlich automatisch Styling dies für mich. Gleiche wie in C, wenn Sie schaffen eine offene geschweifte Klammer, Ihrem Browser automatisch fügt in einem engen geschweifte Klammer. Zum Glück liebt unsere IDE tun dies auch für uns. So, jetzt können wir Art von Typ der Anfang eines Tags, und es wird immer sagen uns, denken Sie daran, das Ende der Tag-Typ. Ich denke, das muss aktiviert werden. Und dann hinzufügen möchten wir, immer, einen Kopf, in dem der Titel. Wir wollen einfach nur vielleicht nennen Diese hallo, und dann Körper. Und los gehts. Das ist eigentlich unsere HTML-Dokument. So ist die Art und Weise, dass jedes HTML-Dokument immer in-- elbe Stil mit int main nichtig. Sie wollen immer zu haben, HTML eine offene und enge tag an der Ober- und Unterseite des Codes. Sie möchten eine Kopf Innenseite haben die den Titel enthält, gerade was auch immer wird sich die Registerkarte Ihres Web-Anzeigen Seite, und ein Körper innerhalb dessen tatsächlich den Inhalt anzeigen von was auch immer Sie tun möchten. Also, wenn Sie wollte eigentlich laufen Dazu werde ich herausheranzoomen. Sie können tatsächlich beginnen apache50 starten dot. Cool. So wie Sie sehen können, jetzt Link herausgeklappt ist. Er sagt, Ihre Website ist jetzt zur Verfügung zu einem bestimmten Link unten. So alle unsere IDE hat done-- keine IDE, sorry-- ja, unsere IDE getan hat, ist ein Web erstellen Link auf dem alle unsere Web-Seiten auf dem Server zugegriffen werden. Werfen wir also einen Blick hier. Lassen Sie auf diese, gehen Sie auf hello.html. Und Sie sehen, eine sehr einfache Web-Seite für Hallo Welt. OK. Wir sind eigentlich los, um nur haben everyone-- ja, was ist los? Publikum: Ich habe eine grundlegende Frage. ANDI PENG: Yup. Publikum: Wie bewerten Sie sparen Ihre Datei als HTML? ANDI PENG: Ja. Also, wenn ich eine neue Datei zu erstellen, wenn ich New File, Untittle, wenn ich es tue, section.html, boom, das ist alles, was ich tun muss. ZIELGRUPPE: [unverständlich]? ANDI PENG: Nein ZIELGRUPPE: [unverständlich]. ANDI PENG: Nein ZIELGRUPPE: [unverständlich]. ANDI PENG: Ja. Ziemlich viel, die Erweiterung auf die Datei, die in Ihrem IDE ist, daß teilt dem Computer mit, dass teilt dem Browser mit, hey, wo sie nach. Das wird Code in dieser Sprache geschrieben. So beispielsweise in Microsoft Wort, was zu tun alle Word-Dokumente am Ende mit, welche Erweiterungs? .doc oder .docx, nicht wahr? Alles, was tut, ist, gibt an, Ihr Betriebssystem, hey, Sie ein Worddokument kommen haben. Öffnen Sie es mit Word. Das Gleiche gilt für PDFs. Es weiß, oh, ich brauche zu öffnen, diese Datei mit Adobe Reader oder Adobe Acrobat. Und so funktionieren die Erweiterungen genauso wie in Ihrem Computer. Wenn Sie Ihre Codepage angeben HTML benannt werden kann, dann weiß es, oh, du HTML-Code haben. Ich werde es als HTML-Code zu behandeln. So ist es in diesem Sinne Super smart. So dass jeder, lassen Sie uns wie 10 Minuten dauern und erstellen Sie einfach unsere eigenen Websites. Lassen Sie uns in die schönen Dinge hinzuzufügen. Fühlen Sie sich frei zu sagen, was Sie wollen. Ich möchte nur, um sicherzustellen, dass jeder Server ordnungsgemäß ausgeführt werden bevor wir befreien Sie in das pset. Denn wenn Sie Ihre Server nicht für die pset laufen, dass wird wirklich, wirklich schlecht. Ich werde einfach zu schweben und sehen, was jeder gerade arbeitet. Wie geht's? Publikum: Ich drehte mich nur auf meinem Computer. ANDI Peng: Das ist in Ordnung. ZIELGRUPPE: [unverständlich]. ANDI PENG: Sie Ihre IDE. Ja. ZIELGRUPPE: [unverständlich]. ANDI PENG: Es ist OK. ZIELGRUPPE: [unverständlich]. ANDI PENG: Völlig in Ordnung. Ist jeder Zugriff ihre Web-Server OK? Wird apache50 läuft OK? Ich denke, in einigen die anderen Abschnitte, die wir hatte Probleme mit Menschen nicht in der Lage, auf den Server zuzugreifen. Ja. So können Sie einfach laufen apache50 Raum beginnen Raumzeit. ZIELGRUPPE: [unverständlich]. ANDI PENG: Yup. Gut? ZIELGRUPPE: [unverständlich]. ANDI PENG: Oh, OK. Also man eigentlich, um einen Raum zu haben. So apache50-- ZIELGRUPPE: ich tat. ANDI PENG: --start Raum. ZIELGRUPPE: Oh, Raum dot. ANDI PENG: Yup, Raum dot. Dort gehen Sie. Also, wenn Sie eine HTML-Seite erstellt, dann können Sie einfach gehen Sie direkt auf die Verbindung, die es gibt. Und Sie sollten in der Lage, darauf zuzugreifen. Jeder war in der Lage Zugriff auf ihre Webseiten OK? ZIELGRUPPE: [unverständlich]. ANDI PENG: Oh, das ist OK. ZIELGRUPPE: [unverständlich]. ANDI PENG: Ja. Ich denke, dass Sie tatsächlich öffnen kann es in Ihrem Browser, Browser und nicht nur Ihre IDE Browser. Ja, ich denke, wenn Sie kopieren und. Publikum: Und dann Wie können wir schalten Sie es aus? [UNVERSTÄNDLICH] ANDI PENG: Ja, tun Sie apache50 stoppen ohne Zeitraum. Jep. ZIELGRUPPE: [unverständlich]. ANDI PENG: Ohne Zeitraum. Ja. Da gehen wir. Jep. Wir schaffen unsere eigenen Web-Seiten. ZIELGRUPPE: Oh, cool. ANDI PENG: Ja. Publikum: Ich habe eine Frage. So Apache 50-- ANDI PENG: 50, yeah. ZIELGRUPPE: [unverständlich]. ANDI PENG: Was? Das ist komisch. Siehst du, das war eine Art der Ausgabe Das war, bevor geschieht. OK. Sehen Sie mich nach dem Abschnitt. Weil wir mit einigen Probleme mit dem Server. Und Sie machen wollen Sie sicher, dass Ihr Server vor dem Start der pset läuft. Denn du wirst es brauchen. Ja. Gibt es jemand, der nicht gewesen ist in der Lage, um ihre Server zu starten? Für diejenigen unter Ihnen, die hinzugefügt werden soll zusätzliche Stil, um Ihre Web-Seiten, wir tatsächlich tun, was David tat im Vortrag als auch, das erstellen eines zusätzlichen Stil ist Blatt, das einen Punkt CSS ist, Cascading Style Sheet und eigentlich nur in hinzuzufügen. So zum Beispiel, Ich habe gerade erstellt haben so ziemlich fast genau die gleiche einem David tat im Vortrag. Sie können ziemlich einfach zu tun Körper. Sie haben, was sind Tags genannt, in denen Sie anwenden können, um was auch immer Schnitt IDE Sie möchten, dass Ihr innerhalb Ist auf HTML-Seite. So dass der Körper der Seite können Sie können Text align Zentrum zu tun. Und dann werde ich kreativ ein Tag namens oberen Innen von denen ich möchte diese Dinge passieren, weisen eine größere Pixelgröße für die Schriftart. Ich möchte die Schriftstärke, kühn zu sein. Und ich möchte die Farbe sein blau, nur willkürlich Werte, die ich beschlossen, zu wählen. Ich kann einen weiteren Tag mit der Bezeichnung Mittel erstellen. Schriftgröße, um es ein bisschen kleiner. Und dann kann ich einen anderen Tag zu erstellen rief unten, wo ich die Schriftgröße sogar noch kleiner sein. Und so ziemlich genau das ist nur Beispiel der Quellcode oder Source-Stylesheets dass es sehr leicht, einfach Google. Wenn Sie sagen, oh, ich will, dass meine Schrift kursiv und dunkelgrün werden, können Sie wahrscheinlich Google, und dann wird es Ihnen sagen, die entsprechenden Tags oder IDs zu erstellen. Und so ist die Art und Weise, dass Sie tatsächlich Art haben dies in einem HTML-Dokument oder verwenden Sie es alles, was Sie haben, hier zu tun ist an der Spitze einen Link zu dem Stylesheet. So können Sie einfach link href equals was auch immer der Name des Stylesheet ist. Und dann wird die Beziehung ist ein Stylesheet. Also innerhalb eines HTML-Dokuments, so lange, wie Sie, um diesen Punkt CSS Blatt, Sie sollten in der Lage sein, den Zugriff auf und die Eigenschaften gibt. So zum Beispiel, hier habe ich gerade erstellen ein weiteres Beispiel Web-Seite. Dies ist herzlich eingeladen, CS50 Schnitt Dienstags von 2.00 Uhr bis 3.30 Uhr bei mir. Und dann habe ich ein schönes Bild fügte hinzu, dass sollten wir möglicherweise in der Lage, zu sehen. Also, wenn Sie hier einen Blick, Wenn Sie gehen, um style.html, wir eine Webseite erstellt mit Kätzchen. Weil kitten sind genial. So dass das Hinzufügen eines Bildes nur img src Link. Ziemlich viel, wenn es jede Art von Funktion Sie hinzufügen möchten Ihren website-- so lassen Sie uns sagen, Sie ein Menü hinzufügen möchten oder eine Suchleiste oder dergleichen ein image-- nur Google, wie das geht. Und Sie nur plop in diesem Format. Und man kann einfach hübsch viel gerade in hinzuzufügen. Es ist wirklich, wirklich einfach. Wir schaffen unsere eigene Web-Seiten jetzt. Wenn Sie wollen-- ZIELGRUPPE: [unverständlich] ANDI PENG: Es tut uns leid? ZIELGRUPPE: [unverständlich]. ANDI PENG: Oh, das div ist nur ein Unternehmensbereich erzählte mir, dass, oh, ich habe ein bestimmter Abschnitt namens Mitte, in der ich die Anwendung meine CSS-Tag, und dann meine anderen Sparte mit dem Boden. Das ist alles, es sage. Da ist es schön zu halten Dinge ordentlich in Ordnung, so erkennt das Programm, wie genau zu laufen. Und denke, ich kann diese kopieren und einfügen in meine aktuellen Browser auch. Es sollte in Ordnung sein. Ja. Yay. Also, wenn jeder will nur versuchen, die Schaffung einer Web-Seite, wir werden noch zwei bis drei Minuten. Ich will einfach nur, um sicherzustellen, jeden Server ausgeführt werden und jeder hat ein Vorstellung davon, wie man das macht. Wenn Sie Jungs wollen nehmen Sie Ihre Computer. Funktioniert immer noch nicht? ZIELGRUPPE: Ich bin nur [unverständlich]. ANDI PENG: Vielleicht versuchen aktualisieren 50 als gut. Ja. ZIELGRUPPE: [unverständlich]. ANDI PENG: Ja. So ist die Möglichkeit, dass Sie einen neuen starten Web-Server auf dem IDE ist nur tun apache50 Raum Startfeld dot. Ich wollte nur, um sicherzustellen, jeder Server laufen OK. Publikum: Hier, auf dem Terminal? ANDI PENG: Ja. ZIELGRUPPE: [unverständlich]. ANDI PENG: Apache. Eigentlich denke ich, du bist läuft schon etwas. Ja, eigentlich bist du Laufen einen anderen Server. Ja, du bist gut. Solange das funktioniert, du bist OK. ZIELGRUPPE: OK. ANDI PENG: Es gibt zwei Möglichkeiten, um Server laufen. So lange, wie eine der Möglichkeiten, arbeitet, es ist alles in Ordnung. Wir werden noch eine Minute dauern nur um Art beenden den letzten Schliff von was auch immer Webseite euch machen wollte. Ist alle, die durch die Art und Weise? Jeder Server sind laufen zudem für Sie? Wir werden das herausfinden. Und HTML ist recht einfach. Also ich denke, wir sind alle gut. Ja. Ich werde zurück kommen. ZIELGRUPPE: [unverständlich]. ANDI PENG: OK. Publikum: So ist es nur begann zu laden. ANDI PENG: Keine Sorge. So HTML, es gibt Quellcode, werden online nach Schnitt sein. Außerdem hat David eine ganze Haufen auch online. Nur irgendwie Blick über sie sehen, wie HTML-Seiten geschrieben werden. Es ist ziemlich einfach. Alles, was Sie nicht wissen, Sie ziemlich viel nur Google und du bist gut. Ich möchte nur, um sicherzustellen, dass Ihre Server laufen. Publikum: Gibt es dazu oft? ANDI PENG: Es ist mir nie passiert. Ich wusste nicht, es auch überwintern konnte. ZIELGRUPPE: [unverständlich]. ANDI PENG: Ich denke, everyone-- mir hat noch nie Winterschlaf. Und ich weiß nicht, warum. Es ist komisch. ZIELGRUPPE: [unverständlich]. ANDI PENG: Ist Ihnen im Winterschlaf? ZIELGRUPPE: [unverständlich]. ANDI PENG: Ja. Publikum: Es ist in Ordnung. Also, wenn es geöffnet ist. ANDI PENG: OK. Wir werden mit einem Server umgehen Fragen nach dem Abschnitt. Sie sollten in Ordnung sein. Sicherstellen, dass Sie, obwohl, Sie wollen sie gelöst bekommen, bevor Sie verlassen. Denn wenn Ihre Server nicht läuft, dann bist du nicht in der Lage, um das zu tun PSET wie jeder Teil der PSET. So können Sie sicherstellen möchten, dass diese funktioniert. Cool. Gut. Verabschieden Kätzchen. Ich verbrachte eine lange Zeit auf der Suche nach dass kitten Bild, um anzuziehen. Also, sowieso. ZIELGRUPPE: [unverständlich]. ANDI PENG: Es tut uns leid? ZIELGRUPPE: [unverständlich]. ANDI Peng: Ich denke, es ist auf der Website. Wie die spec? ZIELGRUPPE: [unverständlich]. Ich denke, das ist nur spec Online in Woche sieben. Ich glaube, es heißt pset6 selbst wenn wir am Wochenende sieben, sind die ist ein Bit-Computing. ZIELGRUPPE: Aber ich meine, wenn Sie aussehen wollen at-- wenn Sie wollen unsere Version nach oben ziehen die Website, von unserer sever? So wie server.c ist die pset, nicht wahr? Wenn Sie wollen, dies zu betrachten, wie, wie sie überprüft heraus? ANDI PENG: Oh, also eigentlich die pset, sind alles, was wir tun, Hier ist hier implementing--, Ich werde über diese kurz zu gehen. Also für alle, die gerade bekommen hat Abschnitt, ihr Jungs haben Glück. Es gibt sehr wenig Material heute tatsächlich decken. Ich werde einfach die nächste zu verbringen 20 Minuten gehen über pset Hilfe. Denn es gibt einige nützliche Funktionen, die Ihr Leben helfen. Und hoffentlich werden wir heraus sein der hier in wie 20 Minuten. OK. So pset7 ist falsch. Auch wenn wir am Wochenende sind sieben, es ist eigentlich pset6. Ich werde das ändern. Alles, was wir tun, in pset6 ist die Schaffung einer Web-Server. Das klingt Super beängstigend. Und vor allem für diejenigen von Ihnen, die bereits sah den Verteilungscode, es gibt eine Menge Code, eine Menge Code. Aber ist völlig OK. Weil die Nitty Gritty Teil der eigentlichen Erstellung der Server wird von uns durchgeführt. Alle Sie wirklich gefragt in diesem pset tun ist nur einige String-Manipulation zu tun in-Datei-I / O. Es ist eigentlich wie recht einfach. Also, wenn Sie zunächst die dass-- Hier hat tatsächlich bereits heruntergeladen die pset und genommen einen Blick? Gut. Ja. Es ist wie 500 Zeilen Code dass Sie gehen, um wie sein wirst, Was ist hier los? Und das ist völlig in Ordnung. Stellen Sie sicher, dass Sie die zu durchschreiten zu sehen. Weil David und-- Ich weiß nicht. Ich glaube nicht, es ist Zamyla ist, diese ein. Aber ich denke, eine andere Fuß Durch sind ziemlich hilfreich im Hinblick auf die nur um dich wissen zu lassen was los ist im Inneren des Codes. Und es ist total OK. Da die vier Funktionen, die Sie aufgefordert, die tatsächlich zu implementieren Null mit dem eigentlichen Server zu tun. Alles, was sie tun müssen, ist nur Parsen von verschiedenen Saiten, Suche durch Saiten, um sicherzustellen, dass die Dinge tun, was von ihnen erwartet sind, zu tun. Also in diesem Sinne gibt es einige sehr, sehr nützliche Funktionen, insbesondere für String Manipulation, dass wir alle übergehen, dass ich dachte, ich würde sehr nützlich für euch , bevor Sie versuchen die pset zu lernen. Und sie sind alle enthalten innerhalb Ihrer string.h Bibliothek. Es ist wahrscheinlich sinnvoller Funktionen habe ich hier nicht enthalten, weil ich entweder nie benutzen sie oder vielleicht habe ich einfach nicht wissen, dass sie existieren. Fühlen Sie sich frei, um Blick durch student.h. Denn es geht um eine Menge sein Funktionen, die sehr nützlich sind. Also die sechs, die ich verwenden die meisten in meinem pset, wenn ich tat es in der vergangenen Woche waren strtok, strchr, strrcher, strstr, strcasecmp und strcpy. Und so ist die letzten zwei mag ziemlich vertraut, um die meisten von euch. Str Fall zu vergleichen, alle es tut, ist zu vergleichen Zeichenfolgen, um sie für die Gleichstellung zu überprüfen, einschließlich der Fall. Und strcpy nur Kopien eine Zeichenkette in einen Puffer. Und so diese beiden sollte sehr scheinen vertraut euch an dieser Stelle. Weil wir ihnen eine Menge verwendet haben, vor allem in den letzten psets. Aber die ersten vier vielleicht Sie haben noch bis heute zu sehen. Aber ich werde nur durch sie gehen. Denn sie gehen, um euer Leben zu machen wirklich, wirklich einfach for-- nicht einfach, aber viel einfacher für dieses kommende pset. OK. So char * Strtok, ist dies die Funktion Definition für diese Funktion enthalten innerhalb der Zeichenfolge, h Bibliothek. Wenn Sie einen Eingang von char * gegeben sind String, der nur ein String ist, oder eine konstante char * deliminator, delim für kurze, Alle es tut bricht die größere Folge in einer Reihe von was wir Token, die durch einen bestimmten Wert getrennt. In einem gewissen Sinn, wenn ich zu geben, Sie section.7.php, dies ist ein String. Also das wäre, wenn ich einen Pass zu spielen in diesem als meine str, mein char * str, wenn meine deliminator war dot, all dies tun würde, ist Suche über Strings. Und das erste Mal, er sieht einen Punkt, es wäre nur auf den Zeiger zurück bis zum letzten Zeichen gefunden in der Zeichenfolge vor diesem. So wäre es hier zu gehen. Und es würde nur geben Sie mir 7.php. Und wenn ich, um den Anruf Funktion ein weiteres Mal, es würde mich nur die .php zu geben. Und so all diese Funktion zu tun ist der größere String brechen in kleinere Strings je auf das, was Sie suchen. Und so zum Beispiel in Ihren Look up-Funktion wenn Sie wollen, zu betrachten, was bestimmte Zeichen zustande kommen oder wenn Punkte geschehen oder Erweiterungen geschehen, Diese Funktion würde ziemlich nützlich sein. Ja. Keine Sorge. Dadurch werden alle be-- ja, was ist los? Publikum: So in der ersten Zeile, wenn wir mit diesem Beispiel, was würden wir Einsatz in das? ANDI PENG: Ja. Rufen Sie einfach wäre eine strtok String Komma delim. Und String ist gleich section.7.php. Und dann bist delim konnte gleich nur Punkt zu sein. ZIELGRUPPE: OK. ANDI PENG: Ja. Einfach so. Alle diese Funktionen sind recht ähnlich, wenn wir gehen durch sie hindurch. Sie tun nur leicht unterschiedliche Dinge. Aber sie sind alle zu gehen machen Ihnen das Leben viel einfacher. Zweite Funktion, dieses irgendjemandes wie super, super, super wichtig, ist the-- halten. Hoppla. Strchr sucht nach dem ersten occurrence-- eigentlich, ja. Strchr ist die Funktion, Ich auf jeden Fall nur ging. So ignorieren, was ich sagte, für die erste Funktion. Es ist eigentlich genannt strchr. Also, was wäre hier passiert ist, ist, wenn Sie wurden einen String in einem char c gegeben, es nur geben würde Sie, was auch immer das war. Ja. So betrachten Sie es als str, die ist ein String und chr als char. Also alles, was Sie zu tun versuchen, ist die Suche für wo eine char ist in einem String. Und so ist es für die erste sucht Auftreten des Zeichen c im String str. ZIELGRUPPE: [unverständlich]. ANDI PENG: Yup. Und dann, wenn es nicht das finden es, es wird NULL zurückgeben. Also etwas, das geht bis sehr werden nützlich für euch dabei die pset wenn, sagen wir, Sie waren für eine Suche Erweiterung wie eine .docx für Word- Dokument oder ein .pdf für ein PDF-Dokument, Sie Art von es verwenden, um zu suchen Denn alles, was nachher jedes Mal, wenn Sie sehen, ein Punkt, nicht wahr? Und so ziemlich genau, wenn Sie ausgeführt, dass durch die Funktion, wenn es NULL zurückgibt, dann wissen Sie, dass es fand es nicht Punkt, was das bedeutet, klar ist keine gültige Dateierweiterung. Oder wenn er zurückkehrt etwas, dann wissen Sie, es geht um was auch immer zurückkehren tatsächlich nach der Erweiterung. Also diejenigen, die hatten suchte durch Lookup- und analysieren Sie diese Funktion geht super nützlich zu sein. So dass wir eigentlich vor sich geht um zu zeigen, mit diesem. Warum gehst du nicht Jungs versuchen, schriftlich ein Funktion bool Satz char * s, dass nur wahr, wenn s ein Satz und andernfalls false. So deuten, Sie gehen wahrscheinlich verwenden strchr. Oder Sie gerade im Thesaurus String für einen bestimmten Charakter. Und so in einem Satz, das, was trennt einen Satz von einem nicht-Satz, welche spezifischen Charakter? ZIELGRUPPE: Einen Raum. ANDI PENG: Ein Raum, oder? Und so was haben wir wahrscheinlich zu wollen in dieser Funktion hier zu tun? ZIELGRUPPE: [unverständlich]. ANDI PENG: Wir werden strchr zu wollen String für das Erscheinungsbild des Raumes. Denn wenn es etwas ist, dann kehrt wir wissen, dass dies ein Satz sein. Das bedeutet, dass wir haben einen Platz in diesem String. Wenn es keinen Platz, dann wissen wir, dass, hey, ich denke, es ist nicht eine Zeichenfolge. Es ist wahrscheinlich nur ein sehr langes Wort. Also gebe ich dir ein paar Jungs, Minuten, um diese Funktion zu schreiben. Ja. ZIELGRUPPE: Hast du Diese Saite vom Benutzer? ANDI PENG: Ja. So ist dies nur eine Funktion. Also in Ihrem Hauptfunktion vorstellen Sie bereits have-- lassen Sie uns hier. OK. Also habe ich dieses Programm, in dem geschrieben Ich habe meine Hauptfunktion, wo Ich habe gerade erstellt zwei Strings. Die erste ist Hallo, mein Name ist ist Andi-- klar, ein Satz. Meine zweite ist einfach Andi, eindeutig nicht zu verurteilen. Und so habe ich laufen lasse beide von denen Saiten mit dieser Funktion. Ich möchte euch zu kalt Satz zu schreiben. Und ich bin die Speicherung dieser Werte, und dann einfach ausdrucken. Also denken Sie, dass der Benutzer gehen, um in einer Zeichenkette übergeben. Und dann wirst du im wesentlichen herauszufinden, ob es ein Satz oder nicht und Rück wahr oder falsch entsprechend. Wenn Sie Jungs wollen einen geben Daumen nach oben oder Heads-up, Kopfnicken, ist jemand bereit ist, zu starten Dieses, das wäre gut. Vielleicht wie 30 Sekunden? Gut. Mal sehen, ob Sie versuchen, Schreiben Sie diese Funktion. So pseudo coding-- Ich werde einfach Art gehen jetzt durch dieses Recht. Ziemlich viel, wir wissen, die Funktion, die wir brauchen, um zu verwenden. Wir werden diese Funktion zu nennen unsere String und der Suche nach einem Raum. Wenn es etwas gibt, dann müssen wir wissen, dass deutlich ist dies ein Satz. Denn es gibt Räume. Dann werden wir wahre, um zurückzukehren. Else, werden wir return false. Möchte jemand zu geben, mir die erste Zeile des Codes dass wir eigentlich vor sich geht zu verwenden, um dies zu schreiben? Es ist wirklich das härteste Codezeile als auch. Ja. Publikum: Wenn strtok s-- ANDI PENG: Just strchr. ZIELGRUPPE: [Zwischen Stimmen] Raum ist nicht gleich null. ANDI PENG: Kühle. Genau richtig. Jeder verstehen, dass die erste Zeile? Wir werden strstr nennen, welche eine Funktion, die durchsucht wird der String s für den char Platz. Und wenn er sie findet, es zu gehen liefern einen Zeiger auf, wo das ist. Wenn es nicht zu finden, es wird NULL zurückgeben. Also, wenn es alles andere als zurück NULL, dann wissen wir, dass es einen Raum gefunden. Ist das sinnvoll? Cool. Gut. Also, wenn wir wissen, dass es fand ein Raum, was wollen wir tun? Publikum: Gibt true zurück. ANDI PENG: Yup. Return true. Und dann, jemand will beenden Sie die Funktion für mich? Ja. Else, einfach so. Und versuchen Kompilieren diese. Jep. So wie Sie Jungs können aus dem zu sehen Ausgänge, erinnern Boolesche Werte in C wird immer im Binärformat ausgedrückt. 1 wahr. 0 ist falsch. Wenn wir diese laufen waren Funktion String ein, der ist Hallo, mein Name ist Andi-- klar, ein sentence-- das Ergebnis aus Anspruch 1, das wahr ist, gedruckt. Das zweite, das nur ein Wort, ausgedruckt Ergebnis auf 0, was falsch ist. Jeder klare Art, wie diese Funktion geschrieben wurde? Ja. ZIELGRUPPE: Können wir auch tun, statt nicht gleich nein, gleich gleich 0 ist, so dass es gleich? ANDI PENG: Nein Weil strchr eine Funktion ist. Ich werde die dies untermauern. Also, was ist der Rückgabetyp unserer strchr Funktion? ZIELGRUPPE: Oh, OK. Oder NULL. ANDI PENG: Ja. Es ist ein char *, die mir sagt, dass was auch immer diese Funktion wird, zurückzukehren, es wird ein Zeiger sein. Entweder der Zeiger sein wird zeigt auf, wo es festgestellt, oder es wird zurückkehren ein Zeiger auf NULL. In jedem Umstand, es geht um einen Zeiger auf etwas zurückzugeben. Und so, wenn Sie gleichzusetzen waren dies entspricht, gleich, 0, wirst du einen Kompilierungsfehler zu bekommen. Weil es sich um einen Zeiger zurück. Und du wirst, um zu versuchen sind Vergleichen einen Zeiger auf eine Ganzzahl. Und der Computer ist nicht gehen, um das wie. Ja genau. Cool. Jeder gut? Und zweitens, wir werden gehen über eine Funktion namens strstr. Keine Sorge, wenn diese Funktionen verwirren. Sie sind verwirrt mich. Als solches könnte euch gesehen haben, sie klingen alle so ziemlich das gleiche. Nur, wenn Sie verwirrt sind, ziehen Sie die string.h Bibliothek. Und euch kann sortieren durch die man zu denen. So strstr, ist alles, was tut Suchanfragen ein String für eine ganz andere Zeichenfolge. Also, wo strchr nur Suchanfragen für ein einzelnes Zeichen, strstr sucht nach einem ganzen String. Also wollte ich schauen, weiß ich nicht weiß, Hallo, mein Name ist Andi. Und den Namen meines besten Freundes ist auch Andi. Wenn ich wollte, um in so aussehen Satz für das gesamte Wort der Andi, meine Nadel hätte was auch immer Sie suchen. Und Ihre Heuhaufen ist, was auch immer Sie dafür suchen in. Also, wenn Sie für einen suchen bestimmtes Wort innerhalb eines Satzes, dieses Wort wird Ihre Nadel sein. Und dann der Satz selbst wird Ihre Heuhaufen. Und so ist es einfach durchsucht das erste Vorkommen des Strings Nadel in der Zeichenkette haystack. Es gibt den Zeiger bis zum ersten Auftreten. Außer, erinnere mich, in diesem Fall ist es die erste Auftreten des gesamten Strangs dass du suchst für, nicht nur ein Charakter. Und so ist dies fast dasselbe wie die Funktion wir gerade getan haben, nur mit etwas Spezifität. Weil die Sie suchen mehr als nur ein Zeichen. Und die Nutzung ist genau das gleiche wie die, die wir gerade getan. Jeder OK mit diesem? OK. Zuletzt werden wir zu gehen, vorbei ist strrchr, was nicht mit strstr oder strchr verwirrt. strrchr hat eine extra r drin. Seien Sie vorsichtig, wenn Sie tippen. Sie können sich finden, einschließlich ein extra r oder nicht mit einem r, und dann Ihre Funktion ist habe nicht zur Arbeit gehen. Und du wirst verwirrt zu sein. Achten Sie darauf, dass Sie die Rechtschreibung sind Alle diese Funktionen richtig. So strrchr ist das genaue Gleiche wie strchr außer es nicht das erste sucht Vorkommen eines bestimmten Zeichens, sondern das letzte Vorkommen. Und so weiter, in dem Sinne, es ist fast genau die gleiche. Aber statt Bewegen mitteln in einem String, Sie gehen zu bewegen sind rückwärts in einen String. Genau dasselbe, du bist nur Suche in einer anderen Reihenfolge. Und so könnte dies Super sein, super nützlich für Ihre Lookup Funktion, wobei die erste Funktion auf Ihrem pset. Nehmen wir an, dass wir brauchten, um einen zu schreiben Funktion der Hohlraumerweiterung in dem wir passieren eine konstante char * Dateinamen, nur einen String, einen Dateinamen, das dauert in diesem Namen und Drucke aus der Erweiterung der Datei. So zum Beispiel, wenn ich Pass in der Kette von pset7.zip, es wird einfach nur auszudrucken die Erweiterung, die .zip ist. Und dies wäre für die Arbeit jede Art von Erweiterung, .docx für Word oder pdf für eine PDF- Datei oder HTML für eine HTML-Datei. Ziemlich viel, schreibe ein Funktion, die das tun können. Ich bin eigentlich los, um schalten Sie in die IDE. Es ist nicht da load-- wir gehen. Also alles, was ich hier getan wird, schuf eine char *, einen ersten String, genannt pset7.zip. Ich werde zoomen. Ich habe eine zweite Zeichenfolge erstellt genannt finalpaper.docx. Und schreiben Sie mir eine Funktion, dass, wenn genannt wird, nur ausdrucken die Dateinamenerweiterungen. Vielleicht nehmen Sie sich ein paar Minuten zu denken, darüber, wie Sie, dies zu tun sind. Etwas anspruchsvoller als der letzte ist, aber die Nutzung ist fast genau die gleiche. Ja. So schreiben Sie eine Funktion namens Erweiterung , dass, wenn ich Ihnen den Namen einer Datei, wenn ich Ihnen Ich pset7.zip-- wollen Sie ausdrucken nur die .zip. Wenn ich Ihnen gerne finalpaper.docx, gerade aus dem .docx zu drucken, nur die Verlängerung der unabhängig von Datei. Diese eigentlich nur nimmt zwei Zeilen Code. So versuchen, wenn Sie sehen, kann vielleicht tun es, dass. Eigentlich nur sie nimmt eine Zeile Code. Aber zwei Linien ist wohl eher Standard. Welche Funktion sind wir wahrscheinlich gehen zu nennen zu wollen? ZIELGRUPPE: strrchr. ANDI PENG: strrchr, richtig. Weil wir suchen von rechts nach links. Ich gab nicht auf euch ein Beispiel wie diese, aber wenn ich Ihnen ein Beispiel, wie www.apple.com und ich wollte nur die .com, wäre es ein Beispiel dafür, wo sein Sie die letzte Instanz anrufen möchten der Periode und nicht der erste, nicht wahr? Wenn Sie Call strchr waren es, würden Sie die apple.com gegeben haben. Wenn Sie strrchr es nannte, würden Sie die .com gegeben haben. Und so vorsichtig, auf dem sein ways-- in meinem Beispiel, Sie könnten wahrscheinlich haben könnte gerade geschrieben es mit strchr, denn es gibt nur einen Punkt. Aber in anderen Fällen, das kann nicht der Fall sein. Und so immer versuchen, entwerfen Ihr Code gut, so dass-- ja? Publikum: So in der Beispiel Sie gerade gesagt, wenn Sie strrchr es würde geben Ihnen .com oder einfach nur gekommen? ANDI PENG: Es würde Ihnen die .com. ZIELGRUPPE: OK. ANDI PENG: Ja. Es weist auf, wo sie es gefunden. Ja. 30 Sekunden vielleicht? Ja. Jeder gute oder vielleicht ein bisschen mehr Zeit? Handzeichen? Karte von Köpfen? Cool. Wer will mir die erste sein, die Codezeile für dieses Programm? ZIELGRUPPE: [unverständlich]. ANDI PENG: Also zunächst einmal, Lassen Sie uns vielleicht brechen diese nach unten. Also, was ist der Rückgabetyp strrchr? Lass uns zurück gehen. strrchr, was ist der Rückgabetyp? ZIELGRUPPE: Char * ANDI PENG: Es ist ein char *, nicht wahr? Was bedeutet, dass du bist wahrscheinlich In ein anderes char * zu Art erstellen möchten der Speicher, wann immer es ist Rückkehr zu, nicht wahr? Denn wenn Sie anrufen die Funktion strrchr, es wird Sie einen Zeiger auf zu geben, wo immer sie festgestellt, dass letzten Periode, Recht? Aber Sie gehen zu wollen, um gerade zu speichern, dass irgendwo, nicht wahr? Und so, wie wir zu codieren diese in unser Programm? ZIELGRUPPE: Sie machen die char * [unverständlich]. ANDI PENG: Yep. ZIELGRUPPE: [unverständlich]. ANDI PENG: strrchr. Ja. Oh, verpasst eine r gibt. ZIELGRUPPE: Dateiname [unverständlich]. Was ist es? Oh, es ist nur s. ANDI PENG: Oh, es ist nur s. Yup, sorry. Mein Fehler. Beispiele stimmen nicht überein. Publikum: Und dann dot. ANDI PENG: Yup. Seien Sie vorsichtig, wenn Sie Kerle sind-- hier, lassen Sie mich zoomen. Da gehen wir. Seien Sie vorsichtig, wenn Sie Kerle sind die Eingabe, vor allem, wenn Sie tun nur ein char sind. Es ist wirklich einfach, versehentlich nur tun doppelte Anführungszeichen statt Einzel. Das wird nicht funktionieren. Ihr Compiler wird sich beschweren. Und Ihre Funktion ist einfach nicht zu laufen. Und so vorsichtig, wenn sein Sie, Dinge zu tun mit Zeichen, dass es einfache Anführungszeichen. Und so funktioniert das Linie Code sinnvoll, alle? Wir schaffen ein char * Zeiger. Weil strrchr Renditen etwas vom Typ Zeiger. Und so werden wir strchr nennen auf S, die die Zeichenfolge, die Datei zu nennen, dass wir im Vorbeigehen. Und wir sind für das letzte suchen Instanz einer Periode, die ist nur die einfachen Anführungszeichen dot Apostroph. Ja. Publikum: Wenn verwenden wir doppelte Anführungszeichen und wenn verwenden wir einfache Anführungszeichen? ANDI PENG: Ja. So doppelte Anführungszeichen sind immer dann verwendet, wenn Sie haben eine Reihe von mehr als nur eines. Also, wenn Sie strstr tust, denen der eine ist, dass Sie Suche nach einem Saite ist für Sie wäre es in doppelte Anführungszeichen übergeben. Aber jedes Mal, es ist nur, ein einzelnes Zeichen, Sie einfache Anführungszeichen zu tun. Es ist eine gute Sache im Auge zu behalten. So, jetzt, da wir unsere Zeiger, was machen wir mit ihm? Ich bitte euch um Drucken Sie es aus, oder? So [unverständlich], zu wollen, dass Sie geben Sie mir die Codezeile? ZIELGRUPPE: printf-- ANDI PENG: Ja. ZIELGRUPPE: --Sie müssen einen Platzhalter. ANDI PENG: Yup. ZIELGRUPPE: Drucken Sie die Platzhalter. Ich weiß nicht, was diesen Ort kennen Halter ist aber zeigen Sie es. OK. Lassen Sie uns zu überspringen, dass für jetzt dann. Publikum: Und dann comma-- ANDI PENG: Pointer, nicht wahr? ZIELGRUPPE: Pointer, yup. ANDI PENG: So Art von eine Fangfrage, hat mit Zeiger und Strings zu tun dass wir Art von bereits darüber gesprochen. Welche Art von Platzhalter tun wir müssen für einen Zeiger für einen char *? ZIELGRUPPE: [unverständlich]. ANDI PENG: Ja. Es ist einfacher als Sie Kerle denken, es ist. ZIELGRUPPE: String? ANDI PENG: Es ist nur eine Zeichenfolge, genau. Da erinnern Saiten nicht wirklich existieren. Ein char * ist das genaue Gleiche wie einen String. Und so wirklich dieses s ist, was sollte die ganze Zeit benutzt haben. OK. Mal sehen, ob wir können versuchen, diese. Lass uns einen Make-Erweiterung. Cool. Ihr Jungs sehen, wie ich in der übergebene psset7.zip und die finalpaper.docx, und er druckt gerade aus die .zip und .docx? Sinn ergeben? OK Ich denke also, in Ihren Look up Funktion in Ihrem pset Sie gehen, wenn die, die gestellt werden String hat eine bestimmte Endung, Sie müssen eine bestimmte Fehlercode zu geben. Und so wird dies ziemlich schrecklich. Weil, wenn Sie herausfinden können heraus, was die Erweiterung ist, Sie können dann vergleichen, dass Erweiterung zu sehen, ob es passt up mit einer bestimmten Endung. Und dann zurückkehren können wird eine Fehlermeldung, oder? Ja. Publikum: so haben wir nicht muss 1 oder etwas hinzufügen? Der Zeiger geht zu the-- ANDI PENG: Nope. ZIELGRUPPE: --point danach. ANDI PENG: Ja. Es weist genau auf wenn das Ereignis war. So zum Beispiel, hier sind wir auf der Suche nach der Zeit. Also, es wird zurück ein Zeiger zu der Periode. Und dann, es wird gedruckt ausgehend in der Periode. So dass Sie nicht brauchen, um 1 hinzuzufügen. Obwohl, es ist völlig in Ordnung, wenn du bist überhaupt nicht sicher, um nur irgendwie der zu testen Sie es selbst heraus. Bauen Sie ein Beispielprogramm. Testen Sie es selbst und sehen, wo es Druck. Das ist auch kein schlechter Weg, es zu tun. Cool. Und das ist so ziemlich alles, Ich hatte für euch heute. Wir haben heute eine Menge pset Zeug. Also, wenn Sie Zweifel haben, wie Ich sagte immer nachschlagen die string.h Bibliothek für dieses pset. Es geht um eine Menge sein, Funktion gibt, die nützlich sein kann. Einige können nicht sinnvoll sein. Ich weiß es wirklich nicht. Wade durch sie, es gibt eine ganze Reihe von ihnen. strstr, strchr sind strrchr super, super hilfsbereit, wie auch die strcpys und strcasecmps dass wir bereits benutzt. Es ist nur so viel Herumspielen mit Zeichenfolgen, die Bestimmung, wenn sie gleich sind, immer Sachen aus Zeichenfolgen und in der Lage, Dateien korrekt zu öffnen. Es gibt eine Menge von Datei-I / O. pset ist wirklich nicht so schlimm. Du wirst ein nehmen betrachten, laden Sie es, und sehen eine ganze Reihe von Code. Keine Sorge, der Code, den Sie tatsächlich zu schreiben, ist überhaupt nicht schlecht. Wenn jemand Probleme mit hat seine Server, mich zu sehen, nachdem Abschnitt. Entschuldigen uns noch einmal für nicht bringen Süßigkeiten an Halloween. Ich weiß nicht, was mit mir los war. Aber wir werden Doppel haben die Süßigkeiten zum nächsten Mal. Und viel Glück in Ihrem pset dieser Woche. Jep.