ANDI PENG: Oleme peaaegu läbi kõik psets. Tegelikult oleme läbi enamikus raskemaid psets. Nii et me oleme tegelikult lihtsalt läheb selline imelihtne läbi järgmise paari nädala jooksul. Me läheme hakata rääkima meie lõplik projekte, sündmusi tulemas järgmise paari nädala jooksul. Ja elu on imelihtne. Nii ei ole liiga palju täna. Loodetavasti on tegelikult imelihtne läbi päevakorda täna, ja siis siit koos aega säästa. Samuti tahan vabandada puudumise eest kommi täna. Ma ei tea, miks. Aga eelneval nädalal Halloween, ma unustada kommi. Nii et ma olen tegelikult lihtsalt suur pettumus teile kohe. Sest ma sõna otseses mõttes pea meeles kommi iga üksiku klassi, kuid Halloween. Aga järgmisel nädalal, ma toon kahekordistada kommi tasa teha, et kõik sinu jaoks. See oleks tore. Nii et mul on paar teated mõnede sõiduplaani. Mul on mõned sõiduplaani küsimusi. Siis me ei kavatse liikuda rääkida, mida nimetatakse chmod. Me räägime, kiiresti TCP / IP HTTP. Ja siis me läheme koodi meie oma kodulehel kasutades HTML ja CSS. Ja siis ma tegelikult jäta äkki nagu 20 minutit rääkida pset6. Kuna pset6 on tegelikult palju värk, et me oleme juba näinud, aga ma tahtsin, et värskendada mõned nendest mõistetest samuti õpetada paari uusi funktsioone. Cool. Nii kõigepealt Tere tagasi murda. Ma loodan, et sa oled break oli nauditav. Kas sa tegid pausi? Sihtrühm: Läksin New York. ANDI PENG: Sa läksid New York? Ma arvan, et pool meie koolis läks New York. Kõik on korras. Veetsin suurema osa oma puhkust istuv voodis Netflixing. Ja see oli hea aeg. Aga me oleme nüüd tagasi, tagasi istungil tagasi kiik asju. Meil on pset tõttu sel reedel kell. Ma arvan, et sa oled juba kiirenenud oma viktoriin, jah? Nii kellelegi, kes on ei olnud nende viktoriinid, tulge ja saada oma viktoriinid minult lõpus osa. Või jälgida mind loengusse. Võtan seda minuga kusagil. Meie lõplik projekt eelpakkumist ka. Nii neile, kes on kunagi võtnud Selle klassi enne, nurgakiviks CS50 on väga palju kulmineerus see grand projekti, et õpilased ettepaneku. Ja eelpakkumist, vaid üldine idee mida võiks teha tahad oma Projekti et idee on tingitud esmaspäev järgmisel esmaspäeval kell. Nii päris palju, David believe rääkida rohkem sellest loengus kui ta ei ole juba. Ja seal on tahke lehele meie kodulehel selgitades kogu projekti nõuetele. Aga sisuliselt valida igal teemal, et olete olnud huvitatud kogu oma aja siin kell CS, olgu see mäng või disaini või video või midagi. Ja te võite tõesti selline nüüd taotleda mõned tunnid et õppisime siin CS50-- hi, welcome-- päris palju läbi lõplik projekt oma valik. Kõik, mis on tingitud esmaspäeva lihtsalt lühike Lieveteksti e-posti teel mulle kiire lausega, mõtled, Andi, Ma olen tõesti huvitatud projekteerimine mäng, mis teeb seda iOS. Cool. Lase mind oma lühikese esialgse ideid oma lõpliku projekti. Ja me räägime läbi, kas see on tegelikult hea mõte või mitte, kui see on teostatav idee või mitte. Aga just eelpakkumist on tingitud järgmisel esmaspäeval. pset6, meie armas web--, mis on valesti. Pset7? pset6? See on pset6, eks? pset6, meie veebiserver, on tingitud Reedel kell keskpäevaks hilja päev. Lahtiolekuajad jätkata tavaliselt esmaspäevast neljapäevani 8:00-11:00 Sel nädalal. Ma arvan Commons eest Järgmise kolme ööd. Cool. Enne oli meil võetud materjali, kas keegi Küsimuste korral nalju, jutte? Mida sa tegid sügisel murda? Sihtrühm: Mida ma pean tegema? ANDI PENG: Juba see on ammu tegelikult. Christabel läks New York. Jäin siin ja Netflixed. Sihtrühm: Oh, jaa olin siin. ANDI PENG: Oh, OK. Sihtrühm: ma ei mäleta mida konkreetselt. ANDI PENG: See on OK. Sihtrühm: Netflixing ilmselt. ANDI PENG: Netflixing. Jah, see on hea aeg. OKEI. Hästi. Kõik küsimused enne me hüpata materjali? Samuti läheme püüdma kiiruse kaudu osa täna mitte liiga palju, et katta. Ja loodetavasti me jõuame siin natuke vara. Vabandame ole kristalliseerunud, ka. Ma olen pettunud, eriti ajal Halloween. Hästi. Cool. Nii et me läheme hakata rääkima käsurea argument nimetatakse chmod. chmod, kõik see on lihtsalt Unix süsteemi kõne läbi käsurea muuta faili õigusi. Nii näiteks oleme kõik tekkinud lehele nagu seda ilmselt millalgi meie eluiga on internet kasutaja, kus meie veebiserver on andnud meile viga keelatud. Sa ei pea luba juurdepääsu, yadda, yadda, yadda, selles serveris. Kõik, mis tegelikult tähendab on see, et load mis olid seotud iganes lehel üritasid pääseda ei olnud teile avatud. Nii päris palju, chmod on viisi saame muuta need süsteemi õigusi et igaühel, kasutaja, grupi, või maailmas, või mis tahes nende kombinatsioon juurdepääsu teatud failid, kataloogid, midagi tõesti, mingit süsteemi operatsioonisüsteemi. Nii et kui keegi poisid on arvutite, kui tunned nagu järgmisi koos minuga täna täiesti vabalt kirjuta asju aastal. Kui ei ole, siis saad lihtsalt hängida. Nii et ma lähen tegelikult tõmba up my terminal kohe. Nii käivitatav käsk chmod, või vähemalt lihtsalt loetleda õigusi oma faili kataloog on vaid LS-l. Nagu näete, kamp värk hüppab millest enamik On oluline, et meid vasakul pool siin. Te näete hunnik rs, ws, 1 /. Jah. Need on sisuliselt lihtsalt kõik Failiõiguste selgitada, mida teatud kataloogid ja failid teie süsteemi on. Nii lähme tagasi power point siin. Nii et lisaks failinimede kui poisid ei vaata paremale, otsime näha sisuliselt just vasakus servas. Nii et lisaks lihtsalt failinimed, me näete õigused faile, nende omanik rühm, rühma nimi, kuupäev et faili viimase muutmine, jne. Näete palju asju kasutades chmod. Nii nii, et me loeme chmod on see, et esimene täht me päris palju ignoreerida nii lugemine õigused. Esimene täht lihtsalt ütleb meile, mida tüüpi süsteem me juurdepääsu. d, sel juhul on kausta või kataloogi. Nii et me teame, et praegu mu tööruumi osa seitse oli kataloogi. Ja siis sa näed kolm triaadid sisuliselt ainult kolm komplekti kolm märki. Ja sa ei mõtle iga nagu natuke. Nii et sa pead lihtsalt kolmed Kolme bitti, üheksa bitti kokku. Sa kohtled neid rühmade kolm. Nii esimese grupi kolme on alati oma kasutajate õigusi. Teie teine ​​grupp kolm on alati oma grupiõigustega. Ja oma kolmanda rea ​​kolm Alati on nagu maailma igale poole jõudev õigused. Nii et ma arvan, et lihtne küsimus küsida, mida on vahe kasutaja ja grupi. Peamine erinevus vahel kasutaja ja grupi on see, et kasutaja on lihtsalt sina ise juurdepääsu iganes see on praegu. Rühm võib olla, kui teil on mitu kasutajate ühes arvutis, näiteks. Kõik neist saab rühmana. Ja siis on maailm lihtsalt maailm, kõik. Nii näeme hiljem, kuidas me suudame muuta neid eri õigused. Nii päris palju, me oleme läheb siiski keskenduda poolse vasakul, kus Kataloogide CS50 näeme drwx, kus r tähendab lihtsalt see loetav. W tähendab lihtsalt see kirjutatav. Ja siis x lihtsalt tähendab see käivitatav. Sa arvad, et see omamoodi ja ei ole mõtet. Peaks olema e. Aga x tegelikult omamoodi töötab veidi paremini, sest sa ei mäleta seda parem. Nii kolme tüüpi asju, mida saate teha, võite lugeda faili, sul võib olla luba kirjutada esitada, või siis võiks olla luba täita faili. Ja nii teed, et me tegelikult esindavad need bitti on arvud 4, 2 ja 1. Nii midagi, mis on loetav on esindatud mitmeid 4. Midagi, mis on kirjutatav esindab 2. Ning kõik see käivitatav mida esindab 1. Nii selles mõttes, saame ka esindavad need numbers-- hi, tere, teistmoodi. Vabandust. Enne kõigile, ma lähen Vabandan kõigi nimel sisenevad klassi praegu. Ma unustasin kommi täna. Vabandust, et ma olen rike Sel nädalal on Halloween. Ma toon kahekordistada kommid järgmine kord tasa teha seda. Aga niikuinii, sorry umbes, et poisid, vabandust. Nii nii, et me saame tegelikult sisend meie käsu argument on meil saab teha chmod grupp kaldkriipsuga load kus grupp on lihtsalt ükskõik rühm me üritame muuta. Ja õigused on mida iganes me tahame lisada see. Nii näiteks pluss lisab õigusi, ja lahutama võtab ära õigused. Ja tüübid grupi meil MEIE kõik, u kasutajatele, g gruppidele, või o teised. See on natuke abstraktne kohe. Aga me läheme üle paari näidet lihtsalt näidata seda päris kiiresti. Igaüks hea selle slide, et ma saaks edasi liikuda? Cool. Nii näiteks rwx. Enne kui me räägime, mida ta esindab, Esiteks, mida ei rwx tähendab? Kui näed, et see teatud faili õiguseid rwx, Mida see tähendab inimene võiks olla võimeline tegema? Sihtrühm: lugeda, kirjutada ja käivitada. ANDI PENG: Jah, täpselt. Te saate lugeda kirjutada ja käivitada. Kuna kõik kolm neist Tegelased on olemas. Nii et kui me minna ja rääkida sellest poolest bitti, rwx saab samuti esindatud 700. Sest nagu näed igal omamoodi faili kataloog loata seal on kolm kolmikut. Sellisel juhul ainult esimene kolmkõla on midagi seal. Nii selles asjas r on 4, w on 2, ja x on 1. Kui lisate neid koos, see on 7. Ja kui teil teisendada see kahend-, see on 700. Kuna 7 on esimene kolmkõla. 0, seal on midagi olemas teises kolmkõla. Ja siis pole midagi olemas Kolmanda kolmkõla, et see on juba teine ​​0. Nii ühes ja samas tähenduses, hunnik triaadid saab esitada ainult bitti, lihtsalt binaarne samuti. Nii 700 tähendab täpselt sama asi nagu rwx ------ poolest õigused. Igaüks selge, et? Cool. Ja nii chmod 111 annaks mis õigused faili? Anna kutid paar sekundit teisendada see. Pea meeles, et esimene kolmkõla on kasutaja. Teine kolmkõla on grupi. Ja kolmas kolmkõla on kõigile. Ja nii chmod 111 annaks mis tüüpi õigused ja kellele? Võtke paar sekundit mõtle selle peale ja tagasi tulla. Jah. Sihtrühm: Nii et igaüks saab käivitada. ANDI PENG: Jah, täpselt. Sihtrühm: Aga keegi ei saa lugeda ega kirjutada. ANDI PENG: Ja julgelt selgitada kõik kuidas sa tulid sellele järeldusele. Sihtrühm: Noh, kasutajate, rühma ja maailma, et see kõik on 1, mis on kood käivitatav. ANDI PENG: Jah, täpselt. Nii 1, antud juhul kõik teame on et see on käivitatava koodi. Kuna lugemine on 4. Kirjutamine on 2. Ja käivitatava on 1. Nii on kõigil kolmel triaadid on 1, et tähendab, et maailma, et kasutaja, ja rühma, nende on kõik täidetavad. Igaüks hea on? OKEI. Ja nii teisel moel et me saame tegelikult kirjuta see ka on teil võiks lihtsalt teha chmod pluss x. vahendit kõik või kõik. Pluss tähendab nende õigusi. Ja siis x tähendab käivitatav. Nii et kaks käsud on tegelikult identsed. Nii et kui sa tahad joosta see oma terminal, sa chmod 111 nime Sinu kataloog või fail. Või saate teha chmod pluss x, nime oma kataloogi fail. Sama asi, lihtsalt lihtsam viis, Võibolla mõned esindada või muutus Failiõiguste. Igaüks OK chmod Enne astume? Cool. Nüüd läheme pea ümber paari slaidid väga abstraktsed mõisted et ma olen päris palju läheb tuul läbi. Ja see on täiesti OK, kui sa ei mõista kõike. Isegi nüüd, ma ikka tõesti ei mõista kõike täielikult. Aga see on rohkem saada tipptasemel mõistmise kuidas mõned neist asjad töötavad. Nii et me läheme rääkida kiiresti umbes TCP / IP, mis on lihtsalt Transmission Control Protokolli kaldkriips Internet Protocol. Tagasikutsumise loeng, David, ta õpetab teile näitel, kus ta tahaks edasi lisades ümbrikus kuni meeldi tippu saalis? Nii et õiguse kooli auditooriumis David näidanud sisuliselt kuidas TCP / IP töötab selles mõttes, et kõik see on on vahend tagamaks, et andmed on tarnitud üle server või internetis. Nii näitel ümbriku ja sõnum, kasutaja lõpus võis näha, et oh, mul on vaja saada neli pakki informatsiooni. Aga ma tegelikult sai ainult kolm. See tähendab, et ma pean puudu üks. Ja üks ei saadetud. Ja nii TCP / IP internet, läbi arvuti ja serveri, teeb täpselt sama asi. Kõik see on täpsustada raames, kus kaotatud andmeid pakettides saab pahaks ja sai. Nagu internetis kui sa üritad juurdepääsu faile võrgus või saata faile Teie sõber või vaadata veebist brauserite tuhandeid miljardeid ja miljardeid baitide info kantakse iga millisekundi. Ja see on tõesti väga segane. Ja see on tõesti raske tegelikult teada, mis on saadetud Ja mis ei ole saadetud. Ja nii TCP / IP lihtsalt täpsustab ühtne raamistik kus veebi brauser ja server võib selline suhelda üksteisega, vaid veenduge, et paketid kõik siin ja midagi on kadunud ja kõik andmed, mida taotletakse tegelikult väljapanek korralikult. Igaüks OK ainult, et väga Lühidalt kõrge aru? Cool. Siis me ei kavatse liikuda arvesse räägime HTTP, mis on lihtsalt Hypertext Transfer Protocol. HTTP, kõik see on on mis iganes tahes lehel või failile juurdepääsu oma veebilehel, server tagastab HTTP staatuse kood vastuseks taotlusele tagada, et kas, oh, see taotlus läbis. Ja kõik on väljapanek korralikult. Või oh ei, 404. Midagi läks valesti. Oh, ma ei saa kuvada. Kõik see on see, et mida iganes sa üritad pääseda, kasutada, kui kasutaja proovib pääseda, kohta internet-- lihtsalt hoolitsedes et siis on kas edukalt külastatud iganes see oli või mitte õnnestus tutvuda iganes see oli. Ja nii HTTP staatuse koodi lihtsalt annab teile vahendid, mida on võimalik teada saada, kas või ei olnud edukas või mitte. Nii näiteks, näitena taotlust. Näete siin on tavaliselt tavaliselt neli rida. Meil on GET HTTP 1.1, mis on lihtsalt Meetodi taotluse URL, protokoll versiooni, välja nime, ja välja väärtus. Seega pole vaja täiesti pähe midagi siin. Just sellist kurssi ise, kuidas neid otsida. Selles näites on meetod taotluse URL on lihtsalt iganes taotluse saadate server. Like, hei, server, ma tõesti tahan juurdepääsu yadda, yadda, yadda, HTTP lehel. Protokolli versioon on lihtsalt ükskõik versiooni oma peremehe või oma server kasutab juurdepääsu teabele. Väli nimi on veebileht või URL, mida te üritate juurdepääsu, sel juhul www.apple.com. Ja välja väärtus on lihtsalt tavaliselt nimi, väärtusega. Ja see võib olla mingit kombinatsiooni tähtede ja numbrite või mis iganes. Nii tüüpiline taotluse, seega mida arvuti tegelikult saadab server, mis ütleb, hei, sa tead, mida ma vajan seda näidatakse, see on selline taotlus et nad tegelikult saavad. Näitena vastuse, mida server saadab sulle tagasi Oleks päris palju sama asi, välja arvatud staatuse kood tipus. Nii 200, 2 0 0 on alati staatuse kood OK. Like, OK, see taotlus läbis. Sa olid pääse kõik õigesti. Elu on hea. Elu on ilus. Kõik on täiesti hea. Ja nii see lihtsalt ütleb teie brauser ja Sinu server, hei, kõik on hea. Ma sain kõik andmed, mida ma vajan. Cool. Probleem on aga selles mõnikord probleeme tulla kui sa have-- kesta ma arvan Ma rääkisin duplikaadid. Sul on nii hea vastuseid. Nii näiteks, 404 on Lehekülge ei leitud. Sa mõnikord on keelatud juurdepääs. Sul on mitmesugused muud olekud, et ma olen Kindlasti olete kõik näinud, kui sa oled üritavad teha uuringuid internet. Ja teie brauser annab teile , ei, ei pääse. Ja sa oled nagu, noh, jama. Nii lihtsalt päris palju, seal on päris ühist olekud. Võibolla tutvuda koos millised need on. Funniest mis Ma arvan, et ma olen kunagi kuulnud of-- kui juhtub, et otsida neid kõiki online, mingil põhjusel pole tegelikult päris staatus koodi nimetatakse 418 Ma olen teekann. Ma googled kus Päritolu see oli. Ja ilmselt ühe Aprillinali " Päev paar aastakümmet tagasi, keegi arvas, et oleks lõbus luua uus staatus kood nimetatakse 418 Ma olen teekann. Õiguspäraselt, nimi selle kood nimetatakse ma olen teekann. Ma unustan, mida lehele pead minna tegelikult teha seda ekraanil. Aga ilmselt saab tegelikult saada staatuse koodi ma olen teekann kuidagi läbi midagi. Nii et sajad ja sadu olekud. Mõned neist rohkem mõttes kui teised. Aga päris palju lihtsalt kurssi ennast enim levinud. Taotletud üksust organismis on lühike ja jässakas, ilmselt. Nii et mõnikord on rohkem hirmutav vigu kui ma olen teekann. Aga see on üks, mis ma arvan sa selline loodan tabanud. Aga ma ei usu, et sa. Igaüks hea just status koodid, taotlused, protsesse, mistõttu Kindlasti infot jagada korralikult? Nüüd me ei kavatse üleminek arvesse on lõbus osa punkti täna kus me räägime natuke HTML. HTML, kõik see on HyperText Markup Language. See on lihtsalt kirjakeele te kasutate luua kõik veebis veebikülgi. Nii tahes veebilehe, mis on lemmik veebileht? Milline on sinu lemmik veebileht? Sihtrühm: [kuuldamatu]. ANDI PENG: Vabandust? Sihtrühm: Tumblr. ANDI PENG: Tumblr. Nii Tumblr on kirjutatud HTML. Ja nii me tegelikult läbida ja mängida mõned neist asjadest hiljem. Päris palju kõike vaja õppida, teada, kirjutada HTML saab ilmselt lihtsalt Google internetis. HTML, see ei ole programmi nagu C kus saab luua muutujaid ja teha lahedaid asju koos sellega. See on rohkem lihtsalt, oh, see on, kuidas ma tahad asju ilmuma oma kodulehel. Ja ma lähen lihtsalt panna see. Ja see läheb stiil. Nii HTML, mõnes mõttes see on nagu formaatimise, või malli keeles. See on palju lihtsam. See on palju lihtsam õppida, palju lihtsam kirjutada kui teie tüüpiline programmeerimine keeles, on väga lihtne, väga kasutaja ja sõbralik. Nii et me oleme tegelikult läheb mängima ümber, kirjutada oma lehekülge täna. Aga enne kui me alustame, ma tahan minna üle mõned lühikesed parimaid tavasid. Kuna HTML on selline lihtne keel ja seetõttu ka kui sa paar asja valesti, mõnikord ei pruugi märgata, Me tahame veenduda, et me oleme tegelikult kinni meie parimaid tavasid veenduda, et asjad, mis võiks ringi, kuid alati ei kavatse mitte minna paremale veenduge, et nad on viidud miinimumini. Nii päris palju, siis veenduge, Sinu sulgeda kõik oma silte kui olete kirjalikult HTML. Kui oled avamine keha, veenduge, et olete sulgemist koos laiba. Sa tahad teha kindel, et teie veebilehe kinnitab abil mida nimetatakse W3 süntaksi. Sa võid Google, et online, ja seal on link sellele. Ja siis tahad Eraldi HTML, mis on oma märgistuskeel oma stiili, mis on CSS keeles, et David näidanud, et me oleme ka Mängime natuke loeng. Cool. Nii millal soovite käivitada HTML on CS50 aparaat, me läheme sõitma programmi nimega apache, mis kõik on lihtsalt ehitatud veebiserver, et kõik CS50 on juurdepääs. Me nimetame seda apache50 lihtsalt, sest me tahan helistada kõik 50 CS50. Nii nii, et hakkate CS50 web server on kirjutades oma käsu line apache50 alustada dot. Ja kui sa tahad seda lõpetada igal aega, siis ei apache50 lõpetatakse dot. Ja sa lihtsalt vajuta Enter. Ja siis tuleb rubriik siin varsti. Jep. Nii et ma olen lihtsalt läheb kiiresti minna üle näide tõesti lühike veebilehel. Ja me ei kavatse kulutada nagu 10, 15 minutit mängides ümber kirjutada oma veebilehti. OKEI. Nii et siin on IDE-- võib igaüks näha, et? Mitte päris. Siin ma suumida. Olen just selle lühikese malli siin midagi tegelikult ta. Me elame kiiresti kirjutada HTML programmi, milles me lihtsalt tere öelda, et maailmas. Nii sama asi nagu C, nüüd oleme lihtsalt kavatse seda teha HTML. Kas keegi taha tegelikult lihtsalt proovida andsid mulle esimese asjana oleks panna HTML dokumenti? Jah. Sihtrühm: Sulgudes on [kuuldamatu]. ANDI PENG: Yep. Nii et kui miski on väga unikaalne HTML, et me tavaliselt traditsiooniliselt ei teki teistes käsk line tase programmeerimiskeelte on see, et me tegelikult täpsustada, millist tüüpi faili et see saab olema ülaosas oma koodi. Nii selles instance-- ma arvan see on õige käsk, eks? Jep. Ülaosas, sa lihtsalt tahad lisada bang DOCTYPE html sulgudes lihtsalt rääkige oma arvuti, hei, tutvu. Ja HTML dokument on tulemas. Ja siis, kui me tahame alustad oma faili? Kui me tahame öelda tere, on veebileht, mis ütleb tere tulemast maailma, kuidas me minna hoone see on? Tegelikult pöördume Google. Ja me tegelikult võite seda teha. Jep. Seal me läheme. Nii HTML. Nagu näete, minu brauser on tegelikult automaatselt stiil see minu jaoks. Sama asi nagu C, kui luua avatud lokkis traksidega, Teie brauser automaatselt lisab tihe lokkis traksidega. Õnneks meie IDE armastab Selleks, et me nii hästi. Nüüd saame sellist tüüpi alguses silt, ja see läheb alati öelda meile mäletan, et kirjutada lõpuni tag. Ma arvan, et see tuleb kapitaliseerida. Ja siis me tahame lisada, alati, pea, kus on pealkiri. Me lihtsalt tahame olla helistada see hello, ja siis keha. Ja seal, kuhu lähed. See on tegelikult meie HTML dokument. Nii nii, et mis tahes HTML dokumenti on alati stiilis in-- sama asi koos int main void. Teil on alati tahtnud HTML avatud ja tihe tag tipus ja allosas oma koodi. Sa tahad olla pea sees mis sisaldab pealkirja, vaid ükskõik läheb kuvada kaardil oma veebilehitseja leht ja seejärel keha mille sees tegelikult kuvada sisu iganes sa tahad teha. Nii et kui sa tahad reaalselt sõita see, et ma lähen uuesti vähendamiseks. Võite tegelikult alustada apache50 alustada dot. Cool. Ja nii nagu näete, nüüd see link on hüppasid üles. Ta ütleb saidil nüüd saadaval mõnel alloleval lingil. Nii et kõik meie IDE on done-- ei IDE, sorry-- yeah, Meie IDE teinud on luua veebi link, millele kõik meie veebilehti pääseb serveris. Võtame pilk siin. Olgem siis see, minna hello.html. Ja sa näed väga lihtne veebilehe hello world. OKEI. Me oleme tegelikult läheb lihtsalt on everyone-- jah, mis toimub? Sihtrühm: mul on põhiline küsimus. ANDI PENG: Jah. Sihtrühm: Kuidas säästa faili HTML? ANDI PENG: Jah. Nii et kui ma oleks luua uus fail, kui ma teen uue faili, Untittle, kui ma teen, section.html, buum, see on kõik, mida ma pean tegema. Sihtrühm: [kuuldamatu]? ANDI PENG: Ei Sihtrühm: [kuuldamatu]. ANDI PENG: Ei Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Päris palju, pikendamise kohta fail, mis on sees IDE, mis ütleb arvutile, et ütleb brauser, hei, tutvu. See saab olema kood kirjutatud selles keeles. Nii näiteks Microsoft Word, mida teha kõik Wordi dokumente lõpeb, mida laiendamine? doc või docx, eks? Kõik, mis teeb, on täpsustab, et opsüsteemi, hei, sul Word dokument tulemas. Avage see sõna. Sama asi PDF-faile. Ta teab, oh, ma vajan avada seda faili Adobe Reader või Adobe Acrobat. Ja nii laiendid tegutseda samamoodi nagu arvuti. Kui määrate oma kood lehel nimetamisest HTML, siis ta teab, oh, sul HTML kood. Ma lähen seda ravida html koodi. Nii et see on super tark selles mõttes. Nii et igaüks, võtame näiteks 10 minuti ja lihtsalt luua oma veebilehed. Lisame kenas asju. Julge öelda mida iganes sa tahad. Ma lihtsalt tahan veenduda, et kõik serverid töötavad korralikult enne kui me vabastada sind pset. Sest kui teie serverid ei jookse eest pset, mis on tõesti halb. Ma lihtsalt float ümber ja vaata, mida igaühe kallal. Kuidas läheb? Sihtrühm: ma lihtsalt välja minu arvutis. ANDI PENG: See on OK. Sihtrühm: [kuuldamatu]. ANDI PENG: Just teie IDE. Jah. Sihtrühm: [kuuldamatu]. ANDI PENG: See on OK. Sihtrühm: [kuuldamatu]. ANDI PENG: Totally trahvi. Kas igaüks pääseda oma veebiserver OK? Kas apache50 töötab OK? Ma arvan, et mõned teistest osadest, me oli probleeme inimesed ei pääse serverisse. Jah. Nii et sa lihtsalt kulgema apache50 ruumi alustada ruumi perioodil. Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Hea? Sihtrühm: [kuuldamatu]. ANDI PENG: Oh, OK. Nii sa peaksid olema ruumi. Nii apache50-- Sihtrühm: tegin. ANDI PENG: --start ruumi. Sihtrühm: Oh, ruumi dot. ANDI PENG: Jah, ruumi dot. Palun. Nii siis, kui teil on HTML lehele on loodud, siis saate lihtsalt minna otse et link, et ta täpsustab. Ja siis peaks olema võimalik seda kasutada. Igaüks suutnud juurdepääsu oma veebilehtedele OK? Sihtrühm: [kuuldamatu]. ANDI PENG: Oh, see on OK. Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Ma arvan, et saate tegelikult avada see teie brauser, brauseri ja mitte ainult oma IDE brauserit. Jah, ma arvan, et kui sa kopeeri ja kleebi see. Sihtrühm: Ja siis Kuidas me selle välja lülitada? [Kuuldamatu] ANDI PENG: Jah, te teete apache50 lõpetada ilma perioodil. Jep. Sihtrühm: [kuuldamatu]. ANDI PENG: Mis ei ajaks. Jah. Seal me läheme. Jep. Loome oma veebilehti. Sihtrühm: Oh, lahe. ANDI PENG: Jah. Sihtrühm: Mul on küsimus. Nii apache 50-- ANDI PENG: 50, yeah. Sihtrühm: [kuuldamatu]. ANDI PENG: Mis? See on imelik. Vaata, mis oli omamoodi küsimus mis juhtus enne. OKEI. Vaata minu pärast osa. Kuna meil on mõned küsimusi server. Ja sa tahad teha Veenduge, et teie server on töötama enne pset. Kuna sa lähed vajavad. Jah. Kas keegi teine, et ei ole võimalik saada oma server alustada? Neile teist, kes tahavad lisada Style oma veebilehekülgedele, me saame tegelikult seda, mida David tegi loeng samuti, mis on luua täiendavaid stiili lehed, mis on dot CSS, Cascading Style Sheet ning tegelikult lihtsalt lisada see. Nii näiteks, ma olen lihtsalt loodud päris palju peaaegu täpselt sama ühe David tegi loengu. Võite päris palju just seda keha. Sul on nn siltidega, kus saab taotleda IDE iganes osa soovite teie tegelik HTML lehel. Nii keha lehel saab teha teksti align center. Ja siis ma loominguline sildi top sees mis ma tahan neid asju juhtuda, loovutada suurem piksel font. Ma tahan, et fondi paksuseks olla julge. Ja ma tahan, et värvi sinine, lihtsalt suvaline väärtused, et ma otsustasin valida. Võin luua uue sildi keskel. Fondi suurus, et see on natuke väiksem. Ja siis ma saan luua uue sildi nimetatakse põhja, kus ma tahan fondi suurust olla isegi väiksem ikka. Ja nii päris palju, see on lihtsalt näide lähtekoodi või allikas CSS et see on väga lihtne lihtsalt Google. Kui te ütlete, oh, ma tahan, et mu kiri tuleb kursiivis ja tumeroheline, saab ilmselt Google, ja siis ta ütleb sulle, sobiv koode või ID luua. Ja nii teed, et sa oleks tegelikult Selline on see HTML dokumenti või kasuta seda on kõik, mida on teha siin eesotsas lisada link stiilis lehel. Nii saab lihtsalt link href võrdsete mis iganes nime oma stiili lehed on. Ja siis suhe on laaditabeli. Nii mis tahes HTML dokumenti niikaua kui sa lisada see dot CSS lehel siis peaks olema võimalik pääseda ja on omadused olemas. Nii näiteks siin ma olen lihtsalt luua järjekordne näide veebilehel. See on teretulnud CS50 osa Teisipäeviti 2:00-3:30 minuga. Ja siis olen lisanud armas pilt, me potentsiaalselt peaks olema võimalik näha. Nii et kui te võtate pilk siin kui te lähete style.html, oleme loonud veebilehe kassipojad. Kuna kassipoeg on fantastiline. Nii Pildi lisamine on lihtsalt img src link. Päris palju, kui on mingit funktsiooni soovite lisada oma website-- nii oletame, soovid lisada menüü või otsinguriba või nagu image-- lihtsalt Google, kuidas seda teha. Ja sa lihtsalt sulpsti sellisel kujul. Ja te võite lihtsalt ilus palju lihtsalt lisada see. See on tõesti väga lihtne. Me loome oma veebilehti kohe. Kui sa tahad-- Sihtrühm: [kuuldamatu] ANDI PENG: Vabandust? Sihtrühm: [kuuldamatu]. ANDI PENG: Oh, div on lihtsalt jagunemine ütleb mulle, et oh, ma pean teatud osa nn keskel, kus ma kohaldamisel minu CSS sildi, ning seejärel minu teisi osakonnale alt. See on kõik see räägib sulle. Sest see on tore, et hoida asjad puhas, et, nii et programm teab, kuidas täpselt jooksma. Ja arvan, et saan kopeerida kleebi see minu tegelik brauseri samuti. See peaks olema trahv. Jah. Jei. Nii et kui igaüks tahab lihtsalt proovida luua veebilehe Võtame veel kaks kuni kolm minutit. Ma lihtsalt tahan veenduda kõik serverid töötavad ja igaühel idee, kuidas seda teha. Kui te tahate, et võtta välja oma arvutid. Ikka ei tööta? Sihtrühm: Ma olen lihtsalt [kuuldamatu]. ANDI PENG: Võib-olla proovida uuendada 50 samuti. Jah. Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Nii nii, et kui te alustate uut veebiserver IDE on lihtsalt teha apache50 ruumi start ruumi dot. Ma lihtsalt tahtsin veenduda kõik serverid töötavad OK. Sihtrühm: Siin terminali? ANDI PENG: Jah. Sihtrühm: [kuuldamatu]. ANDI PENG: Apache. Tegelikult, ma arvan, et sa oled töötab juba midagi. Jah, sa oled tegelikult töötab teises serveris. Jah, sa oled hea. Niikaua kui see töötab, olete OK. Sihtrühm: OK. ANDI PENG: Seal on kaks pyörittämään servereid. Nii kaua kui üks viise töötab, on kõik korras. Võtame veel minut lihtsalt selline lõpetama lihvi iganes veebilehe kutid tahtsid teha. Kas kõik töötab muide? Igaühe serverid töötab lisaks leppida? Me näitaja läbi. Ja HTML on üsna lihtne. Nii et ma arvan, et me oleme kõik hea. Jah. Ma tulen tagasi. Sihtrühm: [kuuldamatu]. ANDI PENG: OK. Sihtrühm: Nii see on lihtsalt hakkas laadida üles. ANDI PENG: Ära muretse. Nii HTML, seal on lähtekoodi, et on Internetis pärast osa. Ka David on tervikuna kamp online samuti. Just selline pilguga üle, et kuidas HTML lehed on kirjutatud. See on üsna lihtne. Midagi sa ei tea, sa päris palju just Google ja sa oled hea. Ma lihtsalt tahan veenduda, et Sinu serverid töötavad. Sihtrühm: ta teeb seda tihti? ANDI PENG: See pole kunagi juhtus minuga. Ma ei tea, see võib isegi talveunne. Sihtrühm: [kuuldamatu]. ANDI PENG: Ma arvan everyone-- minu pole kunagi hibernated enne. Ja ma ei tea, miks. See on imelik. Sihtrühm: [kuuldamatu]. ANDI PENG: Kas sinu talveunes? Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Sihtrühm: See on OK. Nii et kui see on avatud. ANDI PENG: OK. Me tegelema mõned server küsimuste pärast osa. Sa peaksid olema trahv. Kuigi sa tahad teha kindel, et sa saada neid lahendada enne kui sa lahkud. Sest kui serveri ei tööta, siis oled ei kavatse olla võimeline tegema pset, nagu iga osa pset. Nii et sa tahad veenduda, et see töötab. Cool. Hästi. Hüvasti kassipojad. Veetsin aega otsin et kassipoeg pilti panna. Nii, niikuinii. Sihtrühm: [kuuldamatu]. ANDI PENG: Vabandust? Sihtrühm: [kuuldamatu]. ANDI PENG: Ma arvan, et see on veebilehel. Nagu spec? Sihtrühm: [kuuldamatu]. Ma arvan, et spec on ainult Online nädalal seitse. Ma arvan, et see nn pset6, isegi kuigi me oleme nädalas seitse, mis on bitise. Sihtrühm: Aga ma mõtlen, kui sa soovite otsida at-- kui te tahad tõmba meie versioon kodulehel on meie Sever? Nii nagu server.c on pset, eks? Kui soovite vaadata seda, meeldib, kuidas see on korras? ANDI PENG: Oh, nii tegelikult pset, kõik me teeme siin on implementing-- siin Ma lähen üle sellele lühidalt. Nii kõigile, et on just saanud § kutid on õnne. On väga vähe materjali tegelikult katavad täna. Ma lihtsalt kulutada järgmise 20 minutit läheb üle pset abi. Sest seal on mõned kasulikud funktsioone, mis aitavad teie elu. Ja loodetavasti saadame välja on siin nagu 20 minutit. OKEI. Nii pset7 on vale. Kuigi me nädalal seitse, see on tegelikult pset6. Ma muuta. Kõik me teeme pset6 loob veebiserver. See kõlab super hirmutav. Ja eriti neile, teist, kes on juba Vaatasin jaotus koodi seal on palju koodi, palju koodi. Aga on täiesti OK. Kuna Asja tuum osa tegelikult luua server on teinud meie poolt. Kõik sa tõesti küsis teha selles pset lihtsalt teha mõned string manipuleerimise faili I / O. See on tegelikult nagu üsna lihtne. Nii et kui te esimest korda laadida selle-- kes siin on tegelikult juba alla pset ja võtta pilk? Hästi. Jah. Seal on nagu 500 rida koodi et sa lähed, et olla nagu, mis toimub? Ja see on täiesti korras. Veenduge, et teil vaadata walk-läbi ekspordi. Kuna David and-- ma ei tea. Ma ei usu, et see Zamyla on see üks. Aga ma arvan, et mõned teised kõndida läbi ekspordi üsna abiks poolest lihtsalt annan sulle teada mis toimub sees oma koodi. Ja see on täiesti OK. Kuna neli funktsiooni, et sa oled küsis rakendada on tegelikult null pistmist tegeliku server. Kõik nad peavad tegema, on lihtsalt jäsennettäessä erinevat stringid, läbi otsida stringid, veenduda asju teevad mida nad peaksid tegema. Nii et selle kohta on olemas mõned väga kasulikke funktsioone, eriti string manipuleerimine, et peaksime kõik minna üle, et ma mõtlesin, et ma väga kasulik kutid õppida, enne kui proovite pset. Ja nad kõik sisalduva jooksul oma string raamatukogu. Seal on ilmselt kasulikum funktsioone Ma ei ole siia, sest ma ei ole kunagi neid kasutada või võibolla ma lihtsalt ei teadnud, et nad eksisteerivad. Julgelt lühidalt läbi student.h. Sest seal saab olema palju funktsioone, mis on väga kasulik. Nii kuus, et ma kasutan kõige minu pset, kui ma tegin seda möödunud nädalal olid strtok, strchr, strrcher, strstr, strcasecmp ja strcpy. Ja nii kaks viimast võib tunduda päris tuttav enamik teist. Str juhul võrrelda, kõik see on võrrelda stringid vaadata neid võrdsus, sealhulgas juhul. Ja strcpy lihtsalt koopiad üks string puhvrisse. Ja nii need kaks peaksid tunduda väga tuttavad kutid sel hetkel. Sest me oleme neid kasutanud palju, eriti viimase psets. Aga esimese nelja võibolla sa ei ole näinud siiani. Aga ma lähen lihtsalt läbi jalutama. Sest nad ei kavatse muuta oma elu tõesti lihtne for-- ole lihtne, kuid palju lihtsam eeloleval pset. OKEI. Nii char * strtok, see on funktsioon määratluse selle funktsiooni jaoks sisaldas jooksul string, h raamatukogu. Kui teile antakse sisendisse char * string, mis on lihtsalt string, või pidev char * deliminator, delim lühikeseks, kõik see teeb rikub suurem string reaks, mida me nimetame märgid eraldatud teatud väärtuse. Nii et mõnes mõttes, kui ma annan sa section.7.php, see on string. Nii et oleks, kui ma oleks edasi selles nagu mu tn, minu char * tn, kui minu deliminator oli dot, kõik see oleks vaja on otsida läbi string. Ja esimene kord, kui ta näeb dot, see oleks lihtsalt tagasi pointer viimase sümboolne leitud stringi enne seda. Nii et see läheks siin. Ja see oleks lihtsalt mulle 7.php. Ja kui ma helistada funktsioneerida veel üks kord, see annaks mulle lihtsalt Php. Ja nii kõik see funktsioon teeb on lagundada suurem string väiksemateks stringe vastavalt mida te otsite. Ja nii näiteks Sinu pilk up funktsioon Kui soovite vaadata, mida teatud tegelased teoks või kui dots juhtuda või pikendused juhtuda, See funktsioon oleks üsna kasulik. Jah. Ära muretse. See kõik olla-- jah, mis toimub? Sihtrühm: Nii esimeses reas, kui olime kasutades seda näiteks Mis oleks me lisada, et? ANDI PENG: Jah. Sa lihtsalt helistada strtok string komaga delim. Ja string on võrdne section.7.php. Ja siis oled delim võiks olla võrdne ainult dot. Sihtrühm: OK. ANDI PENG: Jah. Just niimoodi. Kõik need funktsioonid on üsna sarnane, kui me minna nende kaudu. Nad lihtsalt ei pisut erinevad asjad. Aga nad kõik läheb teha oma elu palju lihtsamaks. Teine funktsioon, see on nagu super, super, super oluline, on the-- omada. Oops. Strchr otsingud esimest occurrence-- tegelikult, jah. Strchr on funktsioon, mis Ma kindlasti lihtsalt läks üle. Nii ignoreerida, mida ma ütlesin esimest funktsiooni. See on tegelikult nn strchr. Mis oleks juhtunud, siin on, kui sa said string char c, see oleks lihtsalt anda sa iganes see oli. Jah. Nii ma arvan et kui str, mis on string, ja chr char. Nii et kõik üritad teha, on otsing jaoks, kus süsi jääb string. Ja nii see otsib esimene esinemise iseloomu c stringi str. Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. Ja siis, kui ta ei leidnud see, et see läheb tagasi NULL. Nii et kui miski läheb väga kasulik kutid teevad pset Kui öelda, sa otsisid laiendamine nagu docx jaoks Word dokumendi või .pdf jaoks PDF dokument, saab omamoodi kasutada seda vaadata mingil on hiljem Iga kord, kui sa näed dot, eks? Ja nii päris palju, kui te joosta, et läbi funktsioon, kui ta naaseb NULL, siis sa tead, et see ei leia ta dot, mis tähendab seda selgelt ei ole kehtiv faililaiend. Või kui ta naaseb midagi, siis sa tead, see läheb tagasi iganes on tegelikult pärast laiendamist. Nii et need, kes olid hakkasin otsima läbi lookup ja sõeluda, see funktsioon on saab olema super kasulik. Nii et me tegelikult toimub näidata, kasutades seda. Miks sa ei poisid proovige kirjalikult funktsiooni bool lause char * s, mis lihtsalt tagastab TÕENE, kui s on lause ja vale teisiti. Nii vihjata, sa lähed et ilmselt kasutada strchr. Või sa lihtsalt otsida ka string teatud iseloomu. Ja nii on lause, mis eraldab lause mitte-lause, Mis eripära? Sihtrühm: tühik. ANDI PENG ruum, eks? Ja mis me ilmselt läheb tahan teha selle funktsiooni siin? Sihtrühm: [kuuldamatu]. ANDI PENG: Me läheme taha strchr string välimus ruumi. Sest kui ta naaseb midagi, siis me teame, et see peab olema lauses. See tähendab, et me peame on ruumi selles string. Kui pole ruumi, siis me teame et kuule, arvan, et see ei ole string. See on ilmselt vaid tõesti pikk sõna. Nii et ma annan sulle poisid paar minuti kirjutada see funktsioon. Jah. Sihtrühm: Kas sa said Selle stringi kasutaja? ANDI PENG: Jah. Nii et see on lihtsalt funktsioon. Seega kujutada sees peamine funktsioon sa juba have-- lähme siin. OKEI. Nii et ma olen kirjutanud selle programmi, kus Mul on mu peamine funktsioon, kus Ma olen lihtsalt loonud kaks stringi. Esimene neist on Hi, my name on Andi-- selgelt, lause. Minu teine ​​on lihtsalt Andi, ilmselgelt ei ole lause. Ja nii ma töötab nii nende stringid läbi selle funktsiooni. Ma tahan teiega kirjutada külma lause. Ja ma ladustamiseks neid väärtusi, ja siis lihtsalt nende väljatrükkimist. Nii arvan, et kasutaja on läheb edasi string. Ja siis sa lähed sisuliselt aru saada, kui see lause või mitte ja tagasi true või false vastavalt. Kui te tahate anda thumbs up või heads up, pea tukkuma, on keegi on valmis alustama see, et tahaks olla hea. Ehk nagu 30 sekundit? Hästi. Vaatame, kas te võite Kirjutan seda funktsiooni. Nii pseudo coding-- Ma lihtsalt lähen Selline suudad seda kohe. Päris palju, me teame funktsiooni, et me peame kasutama. Me läheme helistada, et funktsiooni Meie string ja otsida ruumi. Kui ta naaseb midagi, siis peame tean, et on selge, et see on lause. Sest seal on ruumi. Siis me lähme tagasi tõsi. Else, me ei kavatse tagasi vale. Kas keegi taha anda minu esimene rida koodi et me tegelikult toimub kasutada kirjutada seda? See on tegelikult kõige raskem koodirida samuti. Jah. Sihtrühm: Kui strtok S- ANDI PENG: Just strchr. Sihtrühm: [astudes HÄÄLT] ruumi ei ole võrdne null. ANDI PENG: Cool. Täpselt õige. Igaüks aru, et esimene rida? Me läheme helistada strstr, mis on funktsioon, mis otsib string s char ruumi. Ja kui ta leiab, et see läheb tagasi kursor, kui see on. Kui ta ei leia seda, see läheb tagasi NULL. Nii et kui ta naaseb midagi muud kui NULL, siis me teame, et see on leidnud ruumi. Kas see on mõtet? Cool. Hästi. Nii et kui me teame, et see on leidnud ruumi, mida me tahame teha? Sihtrühm: Tagasi tõsi. ANDI PENG: Jah. Tagasi tõsi. Ja siis, kui keegi taha lõpetada up funktsioon minu jaoks? Jah. Else, just niimoodi. Ja proovida koostamiseni. Jep. Nii nagu te poisid võib näha väljundid, mäletan tõeväärtused C on alati väljendatud binaarne. 1 on tõsi. 0 on väär. Kui me käivitada funktsioon string üks, mis on Tere, minu nimi on Andi-- On selge, et sentence-- tulemus välja printida kuni 1, mis on tõsi. Teine, mis on lihtsalt Ühesõnaga, tulemusele välja printida 0, mis on vale. Igaüks selge liiki kuidas See funktsioon on kirjutatud? Jah. Sihtrühm: Kas teeme ka, selle asemel, et ei võrdu ole, võrdub võrdub 0, nii, et see on võrdne? ANDI PENG: Ei Kuna strchr on funktsioon. Ma lähen tagasi selle. Mis siis tüübi tagastamise Meie strchr funktsioon? Sihtrühm: Oh, OK. Või NULL. ANDI PENG: Jah. See on char *, mis ütleb mulle, et mida iganes Seda funktsiooni saab tagastada, see saab olema osuti. Kas kursor läheb osutades, kus ta leidis selle, või siis läheb tagasi osuti tühjaks. Mõlemal asjaolu, et see läheb tagasi kursor midagi. Ja nii, kui sa olid võrdsustada see võrdub, võrdne 0, sa lähed, et saada kompileerimisviga. Kuna see läheb tagasi pointer. Ja sa lähed, et proovida võrrelda viit täisarv. Ja arvuti ei ole läheb nii. Jah, täpselt. Cool. Igaüks hea? Ja teiseks, me läheme Üle funktsioon nimega strstr. Ära muretse, kui need funktsioonid on segane teile. Nad ajab mind. Nagu näiteks, kutid oleks näinud, nad kõik kõlab üsna sama. Just siis, kui sa oled segaduses, tõmba string raamatukogu. Ja kutid saate sortida mille kaudu on mis. Nii strstr, kõik, mis teeb, on otsingud stringi kogu muu string. Nii et kui strchr lihtsalt otsingud ühe märgi, strstr otsib kogu string. Nii et ma tahtsin vaadata, ma ei tean, Tere, minu nimi on Andi. Ja minu parima sõbra nimi on ka Andi. Kui ma tahtsin otsida selles lause kogu sõna Andi, minu nõel oleks olnud iganes te otsite. Ja teie heinakuhjas on ükskõik otsite seda. Nii et kui te otsite konkreetse sõna sees lause, et sõna saab olema sinu nõela. Ja siis lause ise saab olema sinu heinakuhjas. Ja nii see lihtsalt otsib esimene esinemine string nõel stringi heinakuhjas. Ta naaseb kursor esimese esinemise. Välja arvatud, mäletan sel juhul, see on Esimene esinemine kogu string et mida te otsite jaoks, mitte lihtsalt märk. Ja nii on see peaaegu Sama asi, kui funktsioon Me lihtsalt tegime, lihtsalt koos natuke rohkem eripära. Kuna te otsite midagi enamat kui lihtsalt üks märk. Ja kasutamine on täpselt sama kui üks, et me lihtsalt tegime. Igaüks OK seda? OKEI. Viimati üks me läheme üle on strrchr, mis ei ole segi ajada strstr või strchr. strrchr on ekstra r seal. Ole ettevaatlik, kui sa kirjutad. Sa võid leida ennast ka Lisatasu r või ei sh r, ja siis oma funktsiooni on sain ei hakka tööle. Ja sa lähed segi ajada. Ole ettevaatlik, et sa õigekirja Kõik need funktsioonid õigus. Nii strrchr on täpne sama asi nagu strchr va otsib see ei ole esimene esinemise eripära, vaid viimase esinemise. Ja nii, selles mõttes, see on peaaegu täpselt sama. Kuid selle asemel, liikudes edastada string, sa lähed liikuma tagasi string. Täpselt sama asi, et sa oled lihtsalt otsivad erinevas järjekorras. Ja nii see võiks olla super, super kasulik oma otsing funktsioon, esimene funktsioon oma pset. Teeme näo, et meil on vaja kirjutada funktsiooni void laiendus, kus me läbima pidev char * faili nimi, lihtsalt string, faili nimi, mis võtab selle nime ja prindib välja laiendamist, et fail. Nii näiteks, kui ma pass string pset7.zip, see saab printida ainult laiendamist, mis on .zip. Ja seda teeks mingit laiendamine, .docx Word või PDF for PDF esitada või .html html faili. Päris palju, kirjutada funktsioon, mida saab teha. Ma olen tegelikult läheb üle minna IDE. Ei ole load-- seal me läheme. Nii ma olen teinud siin loonud char * esimene string, nimetatakse pset7.zip. Ma lähen suumida. Olen loonud teine ​​string nimetatakse finalpaper.docx. Ja kirjutage mulle funktsioon, et kui nimetatakse läheb lihtsalt välja printida faili nimi laiendusi. Võib-olla alles paari minuti mõelda kuidas sa lähed seda tegema. Veidi rohkem väljakutseid kui viimane, aga kasutusaeg on peaaegu täpselt sama. Jah. Nii kirjutada funktsiooni nimetatakse pikendamine et kui ma annan teile faili nime, kui ma annan sulle pset7.zip-- ma soovite välja printida lihtsalt zip. Kui ma annan sulle meeldib finalpaper.docx, lihtsalt välja printida docx, lihtsalt pikendamise iganes faili. See on tegelikult ainult võtab kaks rida koodi. Nii et proovida, et näha, kui te võib-olla seda, et. Tegelikult on see ainult võtab üks rida koodi. Aga kaks rida on ilmselt rohkem standard. Mis funktsioon on meil ilmselt kavatse soovite helistada? Sihtrühm: strrchr. ANDI PENG: strrchr, eks. Kuna me otsime paremalt vasakule. Ma ei saa teile poisid näiteks niimoodi, aga kui ma andsin teile näide, nagu www.apple.com ja ma tahtsin Com, ta tahaks olla näide, kus soovite helistada viimases astmes perioodi ja ole esimene, eks? Kui sa olid kõne strchr, siis oleks olen andnud teile apple.com. Kui te helistasite strrchr, siis oleks andnud teile .com. Ja nii olla ettevaatlik, mida ways-- minu näide, siis võiks ilmselt võiks olla lihtsalt kirjutatud, kasutades strchr, sest seal on ainult üks punkt. Aga teistel juhtudel, mis ei pruugi nii olla. Ja nii püüame alati kujundada koodi hästi, nii selle-- jah? Sihtrühm: Nii et Näiteks sa just ütlesid, kui sa strrchr see oleks teile Com või lihtsalt tulla? ANDI PENG: See annaks sulle .com. Sihtrühm: OK. ANDI PENG: Jah. Ta rõhutab, et kus ta pidas. Jah. 30 sekundit äkki? Jah. Igaüks hea või äkki natuke rohkem aega? Käetõstmisega? Näita pead? Cool. Igaüks taha mulle esimene koodirida selle programmi? Sihtrühm: [kuuldamatu]. ANDI PENG: Nii esiteks, olgem äkki jaotada see. Mis on tüübi tagastamise strrchr? Lähme tagasi. strrchr, mida on tüübi tagastamise? Sihtrühm: Char * ANDI PENG: See on char *, eks? Mis tähendab, et sa oled ilmselt läheb soovi luua uus char * lahke Kaupluste, kui see on tagasi, eks? Sest kui sa helistada funktsiooni strrchr, see läheb teile viit kui ta leidis, et viimase aja õige? Aga sa lähed tahan talletada, et kuskil, eks? Ja nii, kuidas me koodi see meie programm? Sihtrühm: Sa teed char * [kuuldamatu]. ANDI PENG: Yep. Sihtrühm: [kuuldamatu]. ANDI PENG: strrchr. Jah. Oh, vastamata r seal. Sihtrühm: Faili nimi [kuuldamatu]. Mis on? Oh, see on lihtsalt s. ANDI PENG: Oh, see on lihtsalt s. Jah, vabandust. Minu viga. Näiteid ei sobi. Sihtrühm: Ja siis dot. ANDI PENG: Jah. Olge mehed are-- siin, las ma suumida. Seal me läheme. Olge mehed kirjutad, eriti kui sa teed lihtsalt char. See on tõesti lihtne kogemata lihtsalt teha jutumärkide asemel ühe. See ei tööta. Teie koostaja läheb kurta. Ja teie ülesanne on lihtsalt ei kavatse joosta. Ja olge ettevaatlik sa teed asju koos tähemärki et see ülakoma. Ja nii teeb seda rida koodi mõtet kõigile? Loome char * pointer. Kuna strrchr naaseb midagi tüüpi pointer. Ja nii me ei kavatse helistada strchr s, mis on string faili Nime, et me möödaminnes. Ja me vaatame viimase Näiteks on periood, mis on lihtsalt ülakoma dot ülakoma. Jah. Sihtrühm: Kui me kasutame jutumärkide ja kui me Kasutada ülakoma? ANDI PENG: Jah. Nii jutumärkide on kasutatakse alati, kui teil on string enamat kui lihtsalt üks. Nii et kui sa teed strstr, mis on see, mis sa otsida stringi string, siis ei liigu see jutumärkidega. Kuid iga kord, kui ta on lihtsalt Ühe märgi sa tahad teha ülakoma. See on hea asi, mida meeles pidada. Nüüd, et meil on pointer, mida me teeme seda? Ma palun, kutid trükkides välja, eks? Nii [kuuldamatu], soovid anna mulle koodirida? Sihtrühm: printf-- ANDI PENG: Jah. Sihtrühm: --you vajavad koht omanik. ANDI PENG: Jah. Sihtrühm: Trüki koha omanik. Ma ei tea, mis koht omanikule on aga mõtet. OKEI. Olgem vahele, et nüüd siis. Sihtrühm: Ja siis comma-- ANDI PENG: Pointer, eks? Sihtrühm: Pointer, yup. ANDI PENG: Nii mingi nipiga küsimus, on pistmist viiteid ja stringid et me oleme omamoodi rääkis juba. Millist koha omaniku me vajate osutil char *? Sihtrühm: [kuuldamatu]. ANDI PENG: Jah. See on lihtsam kui sa poisid arvavad. Sihtrühm: String? ANDI PENG: See on lihtsalt string, täpselt. Sest mäletan stringid tegelikult ei eksisteeri. Char * on täpne Sama asi nagu string. Ja nii tõesti see s on see, mida oleks tulnud kasutada kogu aeg. OKEI. Vaatame, kas saame proovida töötab see. Teeme make laiendamine. Cool. Te vaadake, kuidas ma möödunud aastal psset7.zip ja finalpaper.docx, ja see lihtsalt trükib välja zip ja docx? On loogiline? OK Ma arvan, et teie pilk üles funktsioon oma pset oled läheb küsitakse, kas string on teatud lõpp, sa pead andma teatud vea kood. Ja nii see on päris kohutav. Sest kui te saate aru millised laiendamine toimub, Seejärel saate võrrelda, et laiendamine, et näha, kas see sobib kokku teatud laiendamine. Ja siis võite pöörduda veateate, eks? Jah. Sihtrühm: Nii et me ei lisama 1 või midagi? Viita läheb the-- ANDI PENG: Nope. Sihtrühm: --point pärast seda. ANDI PENG: Jah. Ta meenutab täpselt kus juhtum oli. Nii näiteks siin, me oleme otsivad perioodi. Nii see läheb tagasi kursor jooksul. Ja siis läheb print välja algusega kell perioodi. Nii et sa ei pea lisama 1. Kuigi, see on täiesti trahvi, kui sa oled kunagi kindel, et lihtsalt selline on katsetada seda ise. Ehitamine proovi programm. Test ise järele ja näha, kus see on trükkimine. See ei ole ka halb viis seda teha. Cool. Ja see on päris palju kõik Mul oli kutid täna. Tegime palju pset kraami täna. Nii et kui kahtled, nagu Ma ütlesin, alati otsida string raamatukogu selle pset. Seal saab olema palju funktsioon olemas, et võib olla kasulik. Mõned ei pruugi olla kasulik. Ma tõesti ei tea. Wade läbi, seal on terve hunnik neid. strstr, strchr, strrchr on super, super kasulik, samuti strcpys ja strcasecmps et me oleme juba harjunud. See on lihtsalt palju jamada stringid, mis määrab, kas nad on võrdsed, saada kraami välja stringid, ja on võimalik avada faile korrektselt. See on palju Faili I / O. pset ei ole tõesti nii halb. Sa lähed võtma vaata seda, lae see, ja vaata terve hunnik koodi. Ära muretse, kood, mida tegelikult kirjutada ei ole üldse halb. Kui kellelgi on küsimusi oma server, tule vaata mind pärast osa. Vabandan veel kord ei tuues kristalliseerunud Halloween. Ma ei tea, mis mul viga on. Aga meil topelt kommi järgmine kord. Ja õnne oma pset sel nädalal. Jep.