ANDI PENG: Sme skoro cez všetky psets. V skutočnosti, sme cez väčšinu z najťažších psets. Takže sme vlastne len ísť na druhu vánku cez najbližších pár týždňov. Chystáme sa začať hovoriť o našom Konečné projekty, udalosti prichádza V najbližších niekoľkých týždňoch. A život bude hračka. Takže nie je moc dnes. Dúfajme, že bude skutočne vánok prostredníctvom programu pre dnešok, a potom odtiaľto s nejakým času nazvyš. Tiež chcem sa ospravedlniť pre nedostatok cukroví dnes. Neviem prečo. Ale v týždni viesť Halloween, by som zabudol cukrovinky. Takže som vlastne len obrovská sklamaním pre vás práve teraz. Pretože som doslova pamätám cukrovinky pre každú triedu, ale Halloween. Ale budúci týždeň, ja uvediem zdvojnásobiť množstvo cukroví vynahradiť to, že všetko za vás. Bude to skvelé. Tak som mať pár oznámenia pokiaľ ide o nejaké plánovanie. Mám nejaké problémy plánovania. Potom sme sa chystáte prejsť na hovoriť o tom, čo sa nazýva chmod. Budeme hovoriť o tom, Rýchlo TCP / IP protokolu HTTP. A potom budeme kódovať naše vlastné webové stránky pomocou HTML a CSS. A potom budem skutočne opustí možná rovnako ako 20 minút hovoriť o pset6. Vzhľadom k tomu, pset6 je vlastne veľa veci, ktoré sme už videli skôr, ale chcel som sa osviežiť niektoré z týchto pojmov rovnako ako naučiť pár nových funkcií. Super. Takže v prvom rade, Vitajte späť z prestávky. Dúfam, že ste zlom bol príjemný. Mohol si to urobiť pre prestávku? Divákov: Išiel do New Yorku. ANDI PENG: Išiel si do New Yorku? Myslím si, že polovica našej školy šiel do New Yorku. To je v poriadku. Strávil som väčšinu svojho prestávky sedavý v posteli Netflixing. A bol to dobrý čas. Ale my sme teraz späť, späť v sedenie, späť do swingu vecí. Máme pset riadne tento piatok na poludnie. Myslím, že ste už zdvihol svoju kvíz, jo? Takže niekto iný, kto má nemal svoje kvízy, prosím, prísť a dostať svoje kvízy odo mňa na konci úseku. Alebo sledovať ma na akademickej pôde. Budem si to so mnou niekam. Naša posledná projekt pre-návrh tiež. Takže pre tých z nás, ktorí nikdy neabsolvoval táto trieda skôr, vyvrcholenie na CS50 je veľmi vyvrcholil v tomto veľký projekt, ktorý študenti navrhujú. A pre-návrh, len všeobecnú predstavu z toho, čo jeden by mohol chcieť urobiť pre ich Projekt, že myšlienka je kvôli pondelok budúci pondelok napoludnie. Tak celkom veľa, myslím, že bude David hovoriť viac o tom v prednáške keď má už nie. A je tu solídny stránka na našich webových stránkach vysvetľuje, všetky požiadavky projektu. Ale v podstate, pick akúkoľvek tému, ktoré ste zaujímal po celý čas tu u CS, či už je to hranie hier alebo dizajnu alebo videa alebo tak niečo. A môžete naozaj druh teraz použiť niektoré z lekcií že sme sa naučili tu v CS50-- hi, welcome-- do značnej miery vedenia konečný projekt podľa vášho výberu. Všetko, čo je kvôli pondelok len stručný reklama prostredníctvom e-mailu pre mňa, rýchly veta, ako, hej, Andi, Som naozaj záujem o projektovanie hra, ktorá robí to pre iOS. Super. Len mi nechať svoju krátkosti Nápady pre vaše záverečných projektov. A budeme hovoriť cez či alebo nie že je v skutočnosti dobrý nápad, alebo nie, ak je to možné, nápad, alebo nie. Ale len pre-návrh je splatná budúci pondelok. pset6, naša milá web-- to je zlé. Pset7? pset6? To je pset6, že jo? pset6, náš webový server, je splatná Piatok na poludnie sa na konci dňa. Úradné hodiny pokračovať normálne od pondelka do štvrtka 8:00 do 11:00 v tomto týždni. Myslím si, že pre Commons ďalšie tri noci. Super. Predtým, než sme mali do materiálu, má niekto máte nejaké otázky, vtipy, príbehy? Čo robíte pre jesennú dovolenku? Divákov: Čo mám robiť? ANDI PENG: Už je to už dávno v skutočnosti. Christabel šiel do New Yorku. Zostal som tu a Netflixed. Publikum: Jo som tu bol. ANDI PENG: Oh, OK. Divákov: Nespomínam si čo konkrétne. ANDI PENG: To je v poriadku. Divákov: Netflixing pravdepodobne. ANDI PENG: Netflixing. Jo, je to dobrý čas. OK. Dobre. Akékoľvek otázky pred skáčeme do materiálu? Tiež, budeme sa snažiť rýchlosť cez úsek dnes, nie je príliš veľa na pokrytie. A dúfajme, že budeme mať tu je trochu skoro. Ospravedlňujem sa za to, že cukríky, tiež. Som na ihrisku najmä počas Halloween. Dobre. Super. Takže budeme začať hovoriť o príkazového riadku argument, nazvaný chmod. chmod, všetko, čo je to len systém Unix volanie vedená z príkazového riadku zmeniť povolenia súboru. Tak napríklad, máme všetci stretli stránku ako je to asi niekedy v náš životnosť bytia internet Používateľ, kde má náš webový server nám dal chybu Forbidden. Nemáte povolenie na prístup, yadda, bla, bla, na tomto serveri. Všetko, čo naozaj znamená je to, že oprávnenie , Ktoré boli pripojené k akejkoľvek Stránka, ktorú sa snažíte zobraziť neboli otvorené pre vás. Tak celkom veľa, chmod je spôsob, v ktorom tie oprávnenia systému môžeme modifikovať dať každému, užívateľ, skupina, alebo svet, alebo akékoľvek Kombinácia uvedených prístupových na určité súbory, adresára, niečo naozaj, nejaký druh systému, na operačný systém. Takže ak niekto z chalanov má počítača, ak máte pocit, rovnako ako nasledujúce spolu so mnou dnes, úplne pokojne stačí napísať veci v. Ak nie, stačí vyraziť. Takže budem vlastne ťahať up môjho terminálu práve teraz. Tak je príkaz na spustenie chmod, alebo aspoň len na zoznam oprávnenia vaše adresár súborov, je len ls-l. Ako môžete vidieť, partia veci vyskočí z ktorých väčšina je pre nás dôležité na bočné tu ľavú. Vy ste vidieť veľa RS, WS, 1 /. Jo. Tí, ktorí sú v podstate len všetky oprávnenia súborové vysvetliť, čo niektoré adresáre a súbory v počítači už. Takže poďme späť k napájanie bod tu. Takže okrem názvy súborov ako vy môžete vidieť na pravej strane, hľadáme vidieť v podstate len stĺpec na ľavej strane. Takže okrem získania názvy súborov, my môže vidieť oprávnenie súborov, ich Vlastník skupiny, názov skupiny, dátum že bol súbor naposledy upravený, et cetera. Môžete vidieť veľa vecí s využitím chmod. Takže spôsob, akým čítame chmod, je, že Prvé písmeno sme celkom veľa ignorovať pokiaľ ide o povolenia čítanie. Prvé písmeno nám práve to, čo hovorí, typ systému sme prístup. d, v tomto prípade, je priečinok alebo adresár. Takže vieme, že v súčasnej dobe moje pracovisko Sekcia siedmich bol adresár. A potom vidíte tri trojica, v podstate len tri sady troch postáv. A vy môžete myslieť na každého ako trochu. Takže stačí tri sady tri bity, deväť bitov celkom. Môžete s nimi zachádzať do skupín po troch. Takže prvá trojica je vždy vaše užívateľské oprávnenia. Vaša druhá skupina troch je vždy svoje oprávnenia skupiny. A vaše tretie sada troch je vždy ako svet, sú všade oprávnenia. Takže myslím, že ľahké otázka sa opýtať, je to, čo je Rozdiel medzi užívateľom a skupinou. Hlavný rozdiel medzi užívateľom a skupinou je, že používateľ je práve vy osobne prístup k čo to je práve teraz. Skupina môže byť, ak máte viac Používatelia na jednom počítači, napríklad. Všetky z nich môže byť považovaná za skupinu. A potom sa svet je práve svet, všetci. Takže môžeme vidieť neskôr, ako môžeme upraviť tie do rôznych oprávnení. Tak celkom veľa, my sme bude sa stále zameriavajú na strane vľavo, kde pre adresár CS50 vidíme drwx, kde r jednoducho znamená, že je čitateľný. W jednoducho znamená, že je to zapisovať. A potom jednoducho x znamená, že je spustiteľný. Človek by si to druh z nedáva zmysel. To by malo byť e. Ale x vlastne druh pracuje o niečo lepšie, pretože si to pamätám lepšie. Takže tieto tri typy vecí, môže robiť, môžete buď čítať súbor, môžete mať oprávnenie na napísať súbor, alebo môžete mať povolenie spustiť súbor. A tak tak, že sme vlastne predstavujú tie, v bitoch je číslo 4, 2 a 1. Takže všetko, čo je čitateľný je reprezentovaná počtom 4. Čokoľvek, čo je zapisovateľný je reprezentovaný 2. A všetko, čo je spustiteľný ako je znázornené o 1. Takže v tomto zmysle, môžeme tiež reprezentovať tieto numbers-- ahoj, vitajte, iným spôsobom. Prepáčte. Predtým, než všetci, budem Ospravedlňujem sa za všetky zadaním triedu teraz. Zabudol som dnes cukrovinky. Je mi ľúto, že som zlyhanie Tento týždeň Halloween. Privediem dvojnásobné množstvo cukroví nabudúce, aby sa na to. Ale tak ako tak, je mi ľúto o tom, že chlapci, sorry. Takže spôsob, ako môžeme skutočne vstup na našom príkazu argument je, že sme môže robiť chmod skupina lomítko oprávnenia, kde skupina je proste čokoľvek skupina sa snažíme zmeniť. A oprávnenia sú čo chceme, aby k nemu pridám. Tak napríklad, navyše dodáva oprávnenia, a odpočítať odvádza oprávnenia. A druhy skupiny máme A pre všetkých, pre užívateľov, u, g pre skupiny, alebo o pre ostatných. Je to trochu abstraktné práve teraz. Ale pôjdeme cez pár príkladov stačí na preukázanie tohto naozaj rýchlo. Všetci dobre na to šmykľavka, takže môžem ísť ďalej? Super. Tak napríklad, rwx. Predtým, než budeme hovoriť o tom, čo to znamená, predovšetkým čo rwx znamená? Ak zistíte, že táto určitá Súbor má oprávnenie rwx, čo to znamenať, že osoba by mohla byť schopní to urobiť? Publikum: Čítanie, zápis a spúšťanie. ANDI PENG: Jo, presne tak. Môžete si prečítať zápis a spúšťanie. Vzhľadom k tomu, všetky tri tých sú prítomné znaky. Takže keď sme sa do toho pustite a diskusie o tom, pokiaľ ide o bitov, rwx môže byť tiež reprezentovaný ako 700. Vzhľadom k tomu, ako môžete vidieť v niektorom druh povolenia adresára súboru, tam sú tri trojice. V tomto prípade, iba prvý triáda má niečo tam. Takže v tomto prípade je r je 4, w je 2, a x je 1. Ak pridáte ty dohromady, je to 7. A tak, ak budete konvertovať to binárny, to je 700. Vzhľadom k tomu, 7 je prvý trojice. 0, nie je nič prítomných v druhom triády. A potom je tu nič prítomná v tretia trojica, takže to je ďalší 0. Takže v rovnakom zmysle, banda trojica môžu byť reprezentované len v bitoch, len v binárnom rovnako. Takže 700 znamená presne to isté, ako rwx ------, pokiaľ ide o povolenia. Všetci jasné, že? Super. A tak chmod 111 by dalo ktorá oprávnenie k súboru? Dajte si chlapci pár sekúnd previesť toto. Pamätajte si, že prvý triáda je pre užívateľov. Druhý triáda je pre skupinu. A tretí trojice je pre každého. A tak chmod 111, ktoré by dalo typ oprávnenia a pre koho? Trvať niekoľko sekúnd o tom premýšľať a vrátiť sa. Jo. Divákov: Takže každý môže spustiť ho. ANDI PENG: Jo, presne tak. Divákov: Ale nikto nemôže čítať alebo písať. ANDI PENG: A pokojne vysvetliť všetkým Ako ste prišiel k tomuto záveru. Publikum: No, pre užívateľov, skupiny, a svet, to je všetko 1, čo je kód pre spustiteľný súbor. ANDI PENG: Jo, presne tak. Takže 1, v tomto prípade, všetci vieme, že je že, že je spustiteľný kód. Vzhľadom k tomu, čítanie je 4. Písanie je 2. A spustiteľný súbor je 1. Tak sa všetky tri trojice sú 1, ktoré Znamená to, že na celom svete, k užívateľovi, a do skupiny, ktoré sú všetky spustiteľné. Všetci dobre s tým? OK. A tak sa druhý spôsob že môžeme vlastne napísať aj to je vám mohol len robiť chmod plus x. má jednak všetky alebo všetky. Plus znamená, že dáva oprávnenie. A potom x znamená spustiteľný. Takže tam dva príkazy sú v skutočnosti rovnaké. Takže ak chcete spustiť to vo vašom terminálu, robíte chmod 111, názov adresár alebo súbor. Alebo si môžete urobiť chmod A plus x, meno vášho adresára súboru. To isté, len jednoduchší spôsob, Možno, pre niektorých reprezentovať alebo zmena oprávnenie k súborom. Každý, kto v poriadku s chmod než sme ďalej? Super. Takže teraz budeme hlavicou do Niekoľko snímok z veľmi abstraktných pojmov že som celkom veľa bude vánok skrz. A je to úplne v poriadku, ak vás Nerozumiem všetko. Dokonca aj teraz, stále robím naozaj pochopiť všetko úplne. Ale je to viac, ako sa dostať najvyššiu úroveň porozumenia o tom, ako niektoré z týchto vecí fungovať. Takže budeme hovoriť Rýchlo o TCP / IP, čo je len Control Transmission Protokol lomítko protokol siete Internet. Pripomeňme z prednášky, David, sa mu naučí vás príklad, kde ju odovzdali poznámky v obálke až rád horná časť prednáškovej sály? Takže na Právnickej fakulte hľadisko David preukázal v zásade ako TCP / IP pracuje v pocit, že ho všetci je je prostriedkom na zabezpečenie toho, aby sa údaje bolo dodané cez servera alebo na internete. Tak v príklade obálky a správa, užívateľ na konci Bolo vidieť, že, oh, som potreboval dostávajú štyri pakety informácií. Ale ja som vlastne len dostal tri. To znamená, že musí byť chýba jeden. A jeden nebola doručená. A tak TCP / IP na internete, prostredníctvom vášho počítača a serverom, robí presne to isté. Všetko, čo to urobí, je špecifikovať rámec, v ktorom stratenú údaje pakety môžu byť zlé a dostal. Rovnako ako na internete, keď sa snažíte prístup k súborom na internete alebo posielať súbory so svojím priateľom alebo pozrieť sa na webe prehliadača, tisíce a tisíce miliárd a miliárd bajtov informácií sú prenášané na milisekundu. A je to naozaj, naozaj mätúce. A je to naozaj ťažké v skutočnosti vedieť, čo sa bola odoslaná a čo nie bola odoslaná. A tak TCP / IP len špecifikuje súdržnej rámec v ktorom váš web Prehliadač a server môže druh komunikovať medzi sebou, len uistite sa, že pakety sú všetci tu a nič ich stratené a všetky údaje, ktoré ste si vyžiadali je v skutočnosti zobrazenie správne. Každý, kto na OK len, že veľmi stručný vysokej úrovni pochopiť? Super. Takže budeme pohybovať do hovoriť o HTTP, čo je len Hypertext Transfer Protocol. HTTP, všetko, čo je, je bez ohľadu na akékoľvek stránka alebo súbor je prístupný na vašich webových stránkach, server vráti HTTP stavový kód v odpovedi na žiadosť uistite sa, že buď, ach, túto požiadavku prešiel. A všetko je nezobrazuje správne. Alebo, oh, nie, 404. Niečo sa pokazilo. Oh, nemôžem zobraziť. Všetko, čo to je, že bez ohľadu na sa snažíte získať prístup, použiť ako užívateľ sa pokúša o prístup, Na internet-- len uistiť že ste buď úspešne prístupné bez ohľadu na to, alebo nie úspešne pristupovať čo to bolo. A tak sa stavom HTTP Kód práve vám poskytne prostriedkom budú môcť zistiť, či ohľadu na to, bola úspešná alebo nie. Tak napríklad, požiadavka príklad. Môžete vidieť, že je to tu obvykle zvyčajne štyri linky. Máme GET protokolu HTTP 1.1, ktorá je len Žiadosť metóda URL, protokol verzie, názov poľa, a hodnota poľa. Takže nie je potrebné úplne zapamätať niečo tu. Len trochu oboznámiť sami s tým, ako tieto vyzerajú. V tomto príklade, požiadavka na spôsob URL je jednoducho čokoľvek požiadavka budete posielať na server. Rovnako ako, hej, server, naozaj chcem Prístup yadda, bla, bla, strana HTTP. Verzia protokolu je jednoducho čokoľvek verzia váš hosť, alebo server používa pre prístup k informáciám. Názov poľa je na internetových stránkach, alebo URL, že sa snažíte získať prístup, V tomto prípade, www.apple.com. A hodnota poľa len typicky meno, hodnota. A to môže byť nejaký druh kombinácia písmen alebo číslic alebo čokoľvek iného. Tak typický požiadavku, takže čo váš počítač vlastne odošle na server, ktorý hovorí, hej, viete, čo ja potrebujem to zobrazené, To je ten druh žiadosti že skutočne dostávajú. Príklad reakcie, čo Server by poslal späť k vám by bolo skoro to isté, s výnimkou stavovým kódom hore. Takže 200, 2 0 0 je vždy stavový kód OK. Rovnako ako, OK, túto požiadavku prešiel. Vy ste schopní získať prístup všetko správne. Život je dobrý. Život je v poriadku. Všetko je úplne dobrá. A tak to len povie prehliadač a server, hej, všetko je dobré. Mám všetky informácie, ktoré potrebujem. Super. Ale problém je niekedy problémy prísť keď si myslím, že posledný have-- Hovoril som o duplikáty. Máte menej dobré odpovede. Tak napríklad, 404 je Stránka nebola nájdená. Tie majú niekedy zakázaným vstupom. Máte rôzne ďalšie stavové kódy, ktoré som istý, že ste všetci videli, keď ste sa snaží robiť výskum na internete. A váš prehliadač vám dáva uzávierky, nie, nemôže získať prístup. A ty si ako, no, blbosť. Takže len celkom veľa, je tu niektoré celkom bežné stavové kódy. Možno, že sa zoznámili s tými, ktoré z nich sú. Najzábavnejšie ten, ktorý Myslím, že som kedy počul of-- ak ste náhodou vyhľadať všetky z nich on-line, z nejakého dôvodu je tu vlastne skutočný stavový kód volal 418 Som kanvice. Aj googled kde pôvod toto bolo od. A zrejme jeden Apríl " Deň pár desiatkami rokov, pred niekoho napadlo, že by bolo na roztrhanie vytvoriť nový kód stavu s názvom 418 Som kanvice. Legitímne, meno tohto kód sa nazýva Som kanvice. Zabudol som, čo strana máte prejsť na skutočne urobiť toto zobrazenie. Ale zdá sa, že môžete skutočne získať stavový kód z nie som teapot akosi cez niečo robiť. Takže tam stovky a stovky stavových kódov. Niektorí z nich sa viac zmysel ako ostatné. Ale do značnej miery len zoznámiť Nechajte sa najčastejších z nich. Požadovaný telo entity je krátky a tučný, zrejme. Takže niekedy existuje viac desivé chyby, než som kanvice. Ale to je ten, ktorý Myslím, že tak nejako dúfam, že hit. Ale ja si nemyslím, že budete. Každý dobrý len na stave kódy, žiadosti, procesy, výroba istí, že informácie sú riadne doručený? Takže teraz budeme prechodu do na zábavu časti oddielu dnes, kde sme trochu pohovoriť o HTML. HTML, všetko, čo je HyperText Markup Language. Je to len štandardné jazyk použiť na vytvorenie celý web stránok na internete. Takže akejkoľvek webovej stránky, čo je vaše obľúbené webové stránky? Aký je váš obľúbený webové stránky? Divákov: [Nepočuteľné]. ANDI PENG: Sorry? Divákov: Tumblr. ANDI PENG: Tumblr. Takže Tumblr je napísaný v HTML. A tak budeme skutočne prejsť a pohrajte sa s niektorými z týchto vecí neskôr. Skoro všetko vám je potrebné sa naučiť, vedieť, písať HTML môžete pravdepodobne Google práve na internete. HTML, nie je to program, ako C kde si môžete vytvoriť premenné a robiť skvelých vecí s ním. Je to skôr len, oh, to je to, ako som sa chcú veci, sa objaví na mojich webových stránkach. A ja som jednoducho ísť, aby ju v. A že to bude to štýl. Takže HTML, v istom zmysle, je to len ako formátovanie či šablóny jazyk. Je to oveľa jednoduchšie. Je to oveľa ľahšie sa učiť, oveľa ľahšie písať než váš typický programovanie jazyk, veľmi jednoduché, veľmi užívateľsky prístupné a priateľské. Takže sme vlastne bude hrať okolo, písať svoje vlastné stránky dnes. Ale skôr, ako začneme, chcem len prejsť niekoľko stručných osvedčených postupov. Vzhľadom k tomu, HTML je tak jednoduchá jazyk a pretože aj Ak si pár vecí zle, to niekedy nemusí všimnúť, Chceme sa uistiť, že sme vlastne dodržiavanie našich najlepších postupov aby sa ubezpečil, že veci, ktoré by mohlo byť deje okolo, ale nie sú vždy nedarí uistite sa, že sú minimalizované. Tak celkom veľa, uistite sa, vaše záverečná všetky svoje tagy keď píšete v HTML. Ak ste otvorení telo, uistite sa, že ste zatvorenie s telom niekde. Chcete, aby sa ubezpečil, že vaše webové stránky overuje pomocou to, čo sa nazýva W3 Validator. Stačí si len Google, že on-line, a tam je odkaz na neho. A potom chcete samostatná HTML, ktorý je váš značkovací jazyk zo svojho štýlu, čo je jazyk, CSS, že David preukázali, že sme tiež bude hrať trochu s prednáškou. Super. Takže kedykoľvek chcete spustiť HTML na CS50 spotrebiče budeme spustiť program s názvom apache, to všetko je len vstavaný web server, že všetci v CS50 má prístup k. Hovoríme to apache50 len preto, že chcel volať všetko 50 v CS50. Takže tak, že spustíte CS50 web server je od písania na povel linka apache50 začať bodku. A ak budete chcieť ukončiť na ktorejkoľvek čas, vy apache50 skončiť bez bodky. A stačí stlačiť Enter. A to by malo byť mieri tu čoskoro. Áno. Takže som len tak rýchlo prejsť cez príklad naozaj krátke webové stránky. A budeme tráviť rovnako ako 10, 15 minút hrania okolo píšeme vlastné webové stránky. OK. Tak tu v IDE-- si každý môže vidieť, že? Ani nie. Tu, budem priblížiť. Práve som dostal tento krátky šablónu tú s ničím vlastne v ňom. Sme len tak rýchlo písať program HTML, v ktorej sme práve pozdraviť svet. Takže to isté ako v C, teraz sme proste robiť to v HTML. Má niekto chcel vlastne len skúste mi dal prvá vec, ktorú bude musieť dať do dokumentu HTML? Jo. Divákov: Zátvorky, tlačidlo [] nepočuteľné. ANDI PENG: Jo. Takže niečo, čo je veľmi jedinečné HTML, ktoré sme zvyčajne tradične nestretávame v inom príkaze programovacie jazyky linkové je, že sme skutočne špecifikovať typ súboru že to bude v hornej časti nášho kódu. Takže v tomto instance-- si myslím, to je správna príkaz, že jo? Áno. Na vrchole, si len chcete, aby zahŕňala bang DOCTYPE html v zátvorke len povedať svoj počítač, hele, pozor. A HTML dokument sa blíži. A potom, ako chceme odštartovať náš súbor? Ak chceme len pozdraviť, majú webová stránka, ktorá hovorí, ahoj svetu, ako sme sa ísť o budovanie toto? V skutočnosti, poďme sa obrátiť na Google. A skutočne môžeme urobiť. Áno. Tam sme ísť. Tak HTML. Ako vidíte, môj prehliadač je v skutočnosti automaticky styling to pre mňa. To isté ako v C, kedy vás vytvoriť otvorený kučeravé rovnátka, Váš prehliadač automaticky dodáva v úzkom zložená zátvorka. Našťastie, náš IDE miluje to pre nás rovnako. Takže teraz môžeme trochu písať začiatok tagu, a to, že nás vždy k pamätať na typ koniec značky. Myslím, že to musí byť veľkými písmenami. A potom sme sa chcete pridať, a to vždy, hlava, v ktorom je názov. Chceme len možno volať Hello, a potom telo. A je to. To je v skutočnosti náš dokument HTML. Takže tak, že akýkoľvek HTML dokument je vždy štylizovaný in-- tej istej veci s int main prázdnoty. Vždycky chcete mať HTML otvorený a zavrieť tag v hornej a dolnej časti kódu. Ak chcete mať hlavu vnútro ktorý obsahuje názov, len bez ohľadu sa bude zobrazovať na karte vášho webu strana, a potom telo vnútri ktoré bude skutočne zobrazenie obsahu na čo chcete robiť. Takže ak by ste chceli skutočne spustiť to, budem sa priblížiť späť. Môžete si skutočne začať apache50 začať bodku. Super. A tak ako vidíte, teraz odkaz má vyskočila. To hovorí, že vaša stránka je teraz k dispozícii na nejaký odkaz nižšie. Takže všetky naše IDE má done-- Nie je IDE, sorry-- jo, naše IDE urobil, je vytvoriť web odkaz, na ktorom všetci našich webových stránok je k dispozícii na serveri. Takže poďme sa pozrieť sem. Poďme kliknite na to, choďte na hello.html. A vidíte, veľmi jednoduchá webová stránka pre Hello World. OK. Sme vlastne bude len majú everyone-- jo, čo sa deje? Divákov: Mám základnú otázku. ANDI PENG: Jo. Divákov: Ako ušetriť váš súbor ako HTML? ANDI PENG: Jo. Takže ak by som mal vytvoriť nový súbor, keď to urobím nový súbor, Untittle, keď to urobím, section.html, boom, to je všetko, čo mám robiť. Divákov: [Nepočuteľné]? ANDI PENG: Nie. Divákov: [Nepočuteľné]. ANDI PENG: Nie. Divákov: [Nepočuteľné]. ANDI PENG: Jo. Celkom veľa, rozšírenie na je súbor, ktorý je vo vnútri vášho IDE, ktorá hovorí počítaču, že hovorí, že prehliadač, hele, pozor. To bude kód písaný v tomto jazyku. Tak napríklad, v Microsoft Word, čo robiť všetky dokumenty programu Word končiť, akú rozšírenie? .doc alebo .docx, že jo? Všetko, čo robí, je špecifikuje Váš operačný systém, hej, máte dokument programu Word blíži hore. Otvorte ho s aplikáciou Word. To isté s PDF. To vie, oh, potrebujem otvoriť tento súbor Adobe Reader alebo Adobe Acrobat. A tak rozšírenie ovládať Rovnako ako vo vašom počítači. Ak zadáte svoju znakovú stránku byť menovaný HTML, potom to vie, oh, máte HTML kód. Chystám sa brať to ako html kód. Takže je to super inteligentný v tomto zmysle. Takže všetci, poďme sa ako 10 minút a len vytvoriť svoje vlastné webové stránky. Poďme pridať krásne veci. Nebojte sa povedať, čo chcete. Ja len chcem, aby sa uistil, že Servery každého z nás sú správne spustený predtým, ako sme vás oslobodí do pset. Pretože ak vašich serveroch nebeží pre pset, to bude naozaj, ale naozaj zlé. Ja som jednoducho ísť plávať okolo a vidieť to, čo všetci sa pracuje. Ako to ide? Divákov: Len som sa obrátil na mojom počítači. ANDI PENG: To je v poriadku. Divákov: [Nepočuteľné]. ANDI PENG: Len vaše IDE. Jo. Divákov: [Nepočuteľné]. ANDI PENG: To je v poriadku. Divákov: [Nepočuteľné]. ANDI PENG: úplne v pohode. Je každý prístup Ich webový server v poriadku? Je apache50 beží v poriadku? Myslím si, že v niektorých ostatné oddiely, my Mal problémy s ľuďmi nie budú môcť získať prístup k serveru. Jo. Takže si stačí spustiť apache50 space začať priestor obdobia. Divákov: [Nepočuteľné]. ANDI PENG: Jo. Dobrý? Divákov: [Nepočuteľné]. ANDI PENG: Oh, OK. Takže ste mal mať priestor. Tak apache50-- Divákov: som to urobil. ANDI PENG: --start priestor. Publikum: Oh, medzera bodka. ANDI PENG: Jo, medzera bodka. A je to. Takže ak máte HTML stránka vytvorená, potom stačí ísť priamo na odkaz, ktorý stanovuje. A vy by ste mali byť schopní sa k nim dostať. Každý, kto bol schopný prístup k ich webové stránky v poriadku? Divákov: [Nepočuteľné]. ANDI PENG: Oh, to je v poriadku. Divákov: [Nepočuteľné]. ANDI PENG: Jo. Myslím si, že môžete skutočne otvoriť že v rámci vášho prehliadača, prehliadača a nie len vaše IDE prehliadač. Jo, myslím, že keď sa skopírovať a vložiť. Publikum: A potom ako sme sa to vypnúť? [Nepočuteľných] ANDI PENG: Jo, vy apache50 prestať so žiadnym obdobím. Áno. Divákov: [Nepočuteľné]. ANDI PENG: Bez obdobie. Jo. Tam sme ísť. Áno. Sme vytvárať svoje vlastné webové stránky. Publikum: Oh, v pohode. ANDI PENG: Jo. Divákov: Mám otázku. Tak apache 50-- ANDI PENG: 50, jo. Divákov: [Nepočuteľné]. ANDI PENG: Čo? To je divné. Vidíš, to bolo celkom emisie , Čo sa deje predtým. OK. Môžete mi po časti. Pretože sme s niektorými Problémy so serverom. A chcete, aby sa istí, že váš server spustený pred spustením pset. Vzhľadom k tomu budete potrebovať. Jo. Je tu niekto iný, ktorý nebol schopný dostať svoje server začať? Pre tých z vás, ktorí chcú pridať ďalšie štýl na vaše webové stránky, môžeme vlastne robiť to, čo Urobil Dávid v prednáške tiež, ktorá je vytvoriť ďalšie štýl list, ktorý je dot CSS, kaskádové Štýlov a vlastne len pridať do. Tak napríklad, práve som vytvoril skoro takmer presne rovnaký, David urobil v prednáške. Môžete si do značnej miery len to telo. Máte to, čo sa nazýva tagy, v ktorých môžete použiť na disk IDE bez ohľadu na časť Chcete v rámci svojich Skutočná do HTML stránky. Takže Telo stránky, vy môže robiť zarovnanie textu centrum. A potom budem kreatívne tag s názvom top vnútri z ktorých chcem tieto veci sa stalo, priraďte väčšiu veľkosť pixelu pre písmo. Chcem, hmotnosť písmo byť odvážni. A chcem farbu na byť modrá, proste ľubovoľné hodnoty, ktoré som sa rozhodol zvoliť. Môžem vytvoriť ďalšie značku s názvom strednej. Veľkosť písma, aby bolo o niečo menšie. A potom som si vytvoriť ďalšie značku volal dole, kde chcem veľkosť písma byť ešte menšie stále. A tak do značnej miery je to len príklad zdrojového kódu alebo zdroj štýlov že je to veľmi jednoduché len Google. Ak poviete, oh, chcem, aby moje písmo ja má byť kurzívou a tmavo zelená, môžete pravdepodobne Google, a potom vám povie, príslušnej značky alebo ID vytvoriť. A tak spôsob, ktorý by v skutočnosti druh má to v dokumente HTML alebo použiť to je všetko, čo musíte urobiť, tu stojí v čele pridať odkaz na štýlov. Takže si môžete len odkaz href rovná bez ohľadu na názov vášho štýlov je. A potom vzťah je štýlov. Takže v akomkoľvek HTML dokumentu, ak ako zahrnúť tento dot CSS list, by ste mali byť schopní získať prístup a majú vlastnosti tam. Takže napríklad, tu som len vytvoriť inú Príklad webovú stránku. To je vítaný sekcia CS50 Utorok od 2:00 do 3:30 so mnou. A potom som pridal krásny obraz, ktorý potenciálne by sme mali byť schopní vidieť. Takže ak ste sa pozrieť tu, keď idete do style.html, sme vytvorili webové stránky s mačiatka. Vzhľadom k tomu, mačiatko sú úžasné. Takže pridávanie je obraz len img src odkaz. Celkom veľa, či je nejaký druh funkcie Ak chcete pridať do svojho website-- takže povedzme, Ak chcete pridať menu alebo panel vyhľadávania alebo podobných image-- len Google, ako to urobiť. A práve PLOP v tomto formáte. A môžete len pekná Koľko len pridať ju do. Je to naozaj, naozaj jednoduché. Vytvárame webové stránky práve teraz. Ak chceš-- Divákov: [Nepočuteľné] ANDI PENG: Sorry? Divákov: [Nepočuteľné]. ANDI PENG: Ach, ta div je len rozdelenie hovoril mi, že, oh, mám určitá časť s názvom prostredný, v ktorej som použitie môj CSS tag, a potom Moje ďalšie delenie pri dne. To je všetko, čo vám hovorí. Vzhľadom k tomu, to je pekné mať veci, elegantný v poradí, takže program vie, ako presne spustiť. A myslím, že môžete kopírovať vložiť tento do mojej skutočnej prehliadači rovnako. To by malo byť v poriadku. Jo. Jaj. Takže ak každý chce len skúste vytvoriť webové stránky, vezmeme ďalšie dve až tri minúty. Ja len chcem, aby sa ubezpečil, Servery každého z nás beží a každý má Predstava o tom, ako to urobiť. Ak vy chcete uzavrieť svoje počítače. Stále nefunguje? Divákov: Som [nepočuteľných]. ANDI PENG: Možno, že sa snaží aktualizovať 50 rovnako. Jo. Divákov: [Nepočuteľné]. ANDI PENG: Jo. Takže tak, že začnete nový webový server na IDE je len robiť apache50 priestor štartu priestor bodku. Len som chcel, aby sa ubezpečil, Servery každého z nás beží v poriadku. Publikum: Tu, na termináli? ANDI PENG: Jo. Divákov: [Nepočuteľné]. ANDI PENG: Apache. Vlastne si myslím, že si beží už niečo. Jo, ty si vlastne spustený iný server. Jo, si dobrý. Tak dlho, ako to je pracovať, si v poriadku. Divákov: OK. ANDI PENG: Sú dva spôsoby, ako spustiť servery. Tak, ak jeden zo spôsobov pracuje, je to v poriadku. Vezmeme ďalšiu minútu len aby druh dokončiť dotvárajú na čokoľvek webové stránky, ktorú chlapci chcel robiť. Je každý pracovný mimochodom? Servery Každý, kto sú beží okrem pre vaše? Vyriešime to von. A HTML je pomerne jednoduchý. Takže myslím, že sme všetci dobre. Jo. Vrátim sa. Divákov: [Nepočuteľné]. ANDI PENG: OK. Divákov: Takže je to len začal naložiť. ANDI PENG: Žiadne obavy. Takže HTML, tam je zdrojový kód, ktorý bude on-line po časti. Tiež, David má celok banda on-line rovnako. Len trochu pohľadom cez to, aby vidieť, ako sú HTML stránky napísané. Je to pomerne jednoduché. Niečo, čo neviem, vy dosť Koľko len Google a máte dobré. Ja len chcem, aby sa uistil, že servery sú spustené. Divákov: Má to to často? ANDI PENG: Je to nikdy sa mi nestalo. Nevedel som, že by to mohlo dokonca prechod do režimu spánku. Divákov: [Nepočuteľné]. ANDI PENG: Myslím, že everyone-- Baňa nikdy hibernated predtým. A ja neviem prečo. Je to divne. Divákov: [Nepočuteľné]. ANDI PENG: Je tvoja hibernující? Divákov: [Nepočuteľné]. ANDI PENG: Jo. Divákov: To je v poriadku. Takže akonáhle je to otvorené. ANDI PENG: OK. Budeme rokovať s nejakým serverom problémy po reze. Tie by mali byť v poriadku. Aj keď sa chcete uistiť, že si je vyriešený pred odchodom. Vzhľadom k tomu, či je váš server nebeží, potom ste nebude môcť vykonávať pset, rovnako ako akékoľvek časti pset. Takže chcete, aby sa ubezpečil, že to funguje. Super. Dobre. Rozlúčiť mačiatka. Strávil som dlhú dobu hľadá že mačiatko obrázok, aby na. Tak, tak ako tak. Divákov: [Nepočuteľné]. ANDI PENG: Sorry? Divákov: [Nepočuteľné]. ANDI PENG: Myslím, že je to na internetových stránkach. Rovnako ako spec? Divákov: [Nepočuteľné]. Myslím, že je len spec online v týždni sedem. Myslím, že sa to volá pset6, dokonca aj keď sme na týždeň sedem, čo je trochu výpočtovej. Divákov: Ale ja som na mysli, ak vás chcú vyzerať at-- ak vás chcú vytiahnuť naša verzia webová stránka z našej sever? Tak ako server.c je pset, že jo? Ak sa chcete pozrieť na to, ako ako to odhlási? ANDI PENG: Oh, takže vlastne pset, všetko robíme Tu je implementing-- tu, Pôjdem cez tento krátko. Takže pre každého, to je len dostal sekciu, vy ste na šťastie. Existuje len veľmi málo materiálu skutočne pokryť dnes. Ja som jednoducho ísť stráviť ďalšie 20 minút idú nad pset pomoc. Vzhľadom k tomu, že je nejaký užitočný funkcie, ktoré vám pomôžu váš život. A dúfajme, že budeme vonku odtiaľ dovnútra ako 20 minút. OK. Takže pset7 je zlé. Aj keď sme na týždeň sedem, je to vlastne pset6. Budem zmeniť. Všetko, čo robíme v pset6 vytvára webový server. To znie mimoriadne desivé. A zvlášť pre tých, ktorí z vás, ktorí už Pozrel sa na distribučnom kód, je tu veľa kódu, veľa kódu. Ale je úplne v poriadku. Vzhľadom k tomu, natvrdlý kostrbata časť skutočne vytvárať server sa vykonáva nami. Všetko, čo ste naozaj požiadaní robiť v tejto pset je jednoducho urobiť nejaké manipuláciu s reťazcami V súbore I / O. Je to vlastne ako pomerne jednoduché. Takže keď si najprv stiahnuť that-- ktorí tu skutočne už stiahli pset a vziať sa pozrieť? Dobre. Jo. Je tu ako 500 riadkov kódu že budete vyzerať, čo sa deje? A to je úplne v pohode. Uistite sa, že sa budete pozerať na Walk-priechodiek. Pretože David a-- ja neviem. Nemyslím si, že je to Zamyla, tento jeden. Ale myslím, že niektoré ďalšie walk-priechodky sú pomerne užitočné, pokiaľ ide o Len vám vedieť, čo sa deje vo vnútri vášho kódu. A je to úplne v poriadku. Vzhľadom k tomu, že štyri funkcie, ktoré ste nablízku vyzvané k realizácii mať skutočne nula robiť so skutočným serverom. Jediné, čo musíte urobiť, je len analýze rôznych reťazcov, prehľadávanie reťazcov, aby sa ubezpečil, čo robíte čo majú robiť. Takže v tomto zmysle, tam sú niektoré veľmi, veľmi užitočné funkcie, najmä pre reťazec manipulácia, že by sme mali všetci prejsť, že som si myslel, že by som byť veľmi užitočné pre vás naučiť sa pred pokusom o pset. A všetci sú obsiahnuté priamo vo Vašom string.h knižnice. Tam je pravdepodobne oveľa užitočnejšie funkcie, som tu nie sú zahrnuté, Buď preto, že som nikdy použiť, alebo Možno som jednoducho nevedel, že existujú. Neváhajte, aby sa pozrel cez student.h. Vzhľadom k tomu, že to bude veľa funkcií, ktoré sú veľmi užitočné. Takže šesť ktorý používam najviac v mojom pset keď som robil to minulý týždeň boli strtok, strchr, strrcher, strstr, strcasecmp, a strcpy. A tak posledné dva sa môže zdať docela známy väčšina z vás. Str prípad porovnať, všetko, čo robí, je porovnať struny pre kontrolu za rovnosť, vrátane prípad. A strcpy len kópie jeden reťazec do vyrovnávacej pamäte. A tak tí dvaja by sa zdajú byť veľmi známy vami v tomto bode. Pretože sme použili je veľa, najmä v posledných psets. Ale prvé štyri možná ste ho ešte nevideli až do teraz. Ale budem len chodiť cez ne. Vzhľadom k tomu, že idú, aby sa vaše životy Naozaj, rýchle for-- nie je ľahké, ale oveľa jednoduchšie pre tento nadchádzajúce pset. OK. Takže char * strtok, to je funkcia definícia pre túto funkciu obsahovala v rámci reťazca, h knižnice. Ak dostanú vstup char * reťazec, ktorý je len reťazec, alebo konštantné char * deliminator, deli pre krátke, všetko to robí láme väčšie reťazec do série, čomu hovoríme tokeny oddelené určitú hodnotu. Takže v tom zmysle, keby som mal dať ste section.7.php, to je reťazec. Tak to by bolo, keby som mal prejsť v tomto ako môj str tak, že môj char * str, keď je moja deliminator bola bodka, to všetko by sa urobiť, je vyhľadávanie prostredníctvom reťazec. A prvýkrát vidí bodku, by to jednoducho vráti k ukazovateľmi do posledného nájdeného tokenu v reťazci pred týmto. Takže bolo by to tu. A to by len daj mi 7.php. A ak by som mal zavolať fungovali ešte raz, to by mi len .php. A tak všetko je táto funkcia robí sa pokazí väčšie reťazec na menšie reťazcov v závislosti Na to, čo hľadáte. A tak sa napríklad v váš vzhľad up funkcie ak sa chcete pozrieť na to, čo určité znaky prísť o alebo ak body stane, alebo rozšírenie sa stalo, Táto funkcia by byť celkom užitočné. Jo. Bez obáv. To všetko be-- jo, čo sa deje? Divákov: Takže v prvej línii, Ak by sme použili tento príklad, čo by vložíme do toho? ANDI PENG: Jo. Tie by jednoducho zavolať strtok reťazec čiarka deli. A reťazec je rovný section.7.php. A potom ste DELI by mohlo byť presne len dot. Divákov: OK. ANDI PENG: Jo. Presne tak. Všetky tieto funkcie sú pomerne podobné, keď sme ísť cez ne. Proste robiť trochu iné veci. Ale oni všetci budeme aby váš život oveľa jednoduchší. Druhá funkcia, toto je ako super, super, super dôležité, Je the-- zdvihnúť. Oops. Strchr vyhľadá prvý occurrence-- Vlastne jo. Strchr je funkcia, ktorá Rozhodne som jednoducho išiel. Tak ignorovať to, čo som povedal, pre prvú funkciu. Je to vlastne volal strchr. Takže to, čo by sa stalo, tu je, ak ste dostali reťazec v char c, to by len dať vy, čo to bolo. Jo. Takže myslíte, že na to, ako str, ktorý je reťazec, a chr as char. Takže všetko, čo sa snažíte urobiť, je vyhľadávanie pre, kde char je v reťazci. A tak sa hľadá prvý výskyt znaku c v reťazci str. Divákov: [Nepočuteľné]. ANDI PENG: Jo. A potom, ak to nenašiel je to, že to bude vrátiť NULL. Takže niečo, čo bude veľmi užitočné pre vás v robí pset ak, povedzme, ste hľadali Rozšírenie ako DOCX pre Word dokument alebo .pdf pre dokument PDF, môžete druh použiť, aby to vyzeralo pre to, čo je neskôr zakaždým, keď vidíte bodku, že jo? A tak do značnej miery, ak ste beh, že pomocou funkcie, ak to vráti NULL, potom viete, že to nebol to nájsť bodka, čo znamená, že tento zjavne nie je platný príponu súboru. Alebo ak sa vráti niečo, potom viete, to bude čokoľvek, čo sa vrátiť vlastne po rozšírení. Takže tí z vás, ktorí mali začali hľadať pomocou vyhľadávania a analyzovať, táto funkcia je Bude mimoriadne užitočné. Takže sme vlastne bude demonštrovať pomocou tejto. Prečo si chlapci skúste zapísaním Funkcia bool veta char * s, že jednoducho vracia true, pokiaľ s je vety a false inak. Takže náznak, budete sa pravdepodobne používať strchr. Alebo vám stačí hľadať v Reťazec pre určitý znak. A tak vo vete, to, čo oddeľuje vetu z non-vety, aké konkrétne postava? Divákov: Vesmírna. ANDI PENG: Vesmírna, že jo? A tak čo budeme pravdepodobne bude chcete urobiť v tejto funkcii tu? Divákov: [Nepočuteľné]. ANDI PENG: Budeme chcieť strchr reťazec pre vzhľad priestoru. Vzhľadom k tomu, ak sa vráti niečo, potom vieme, že to musí byť veta. To znamená, že musíme mať priestor v tomto reťazci. Ak nie je žiadny priestor, potom vieme, že, hej, myslím, že to nie je reťazec. Je to asi len naozaj dlhé slovo. Takže ja dám vám chlapci pár minút na napísanie tejto funkcie. Jo. Divákov: Dostali ste Tento reťazec od užívateľa? ANDI PENG: Jo. Tak to je len funkcia. Tak si predstavte vnútri hlavnú funkciu ste už have-- ideme sem. OK. Tak som napísal tento program, v ktorom Mám môj hlavný funkcie, kde Práve som vytvoril dva reťazce. Prvý z nich je Ahoj, volám je Andi-- jasne, veta. Môj druhý z nich je práve Andi, jasne nie odsúdiť. A tak Bežím oba tieto struny cez túto funkciu. Chcem vy písať studenej vetu. A ja ukladanie týchto hodnôt, a potom len ich tlače. Takže myslím, že používateľ je prejsť v reťazci. A potom budete v podstate zistiť, či je to trest, alebo nie a vráti true alebo false podľa toho. Ak sa chcete vy, čím sa získa palce hore alebo heads up, head prikývnuť, Je niekto je pripravený na spustenie to, že by bolo dobré. Možno, rovnako ako ďalších 30 sekúnd? Dobre. Uvidíme, či si môžete vyskúšať písania tejto funkcii. Takže pseudo coding-- Ja som jednoducho ísť druh prejsť tohto práva teraz. Celkom veľa, my vieme, že Funkcie, ktoré musíme použiť. Budeme volať túto funkciu na náš reťazec a hľadanie priestoru. Ak sa vráti niečo, potom musíme vedia, že zrejmé, že toto je veta. Pretože tam je priestor. Potom budeme vracať true. Else, budeme return false. Má niekto chcel dať me prvý riadok kódu že sme vlastne bude použiť na napísanie tohto? Je to vlastne najťažšia riadok kódu tiež. Jo. Divákov: Ak strtok S- ANDI PENG: Just strchr. Divákov: [vložením VOICES] priestor nie je rovné null. ANDI PENG: cool. Presne tak. Všetci pochopili, že prvý riadok? Budeme volať strstr, čo je funkcia, ktorá vyhľadáva reťazec s pre char priestoru. A ak nájde, bude to vrátiť na miesto, kde to je. Ak sa nenájde to, že to bude vrátiť NULL. Takže ak sa vráti niečo iné ako NULL, potom vieme, že to našiel medzeru. Dáva to zmysel? Super. Dobre. Takže ak vieme, že je nájdený space, čo chceme robiť? Divákov: Návrat pravda. ANDI PENG: Jo. Návrat pravda. A potom niekto bude chcieť dokončiť funkciu pre mňa? Jo. Else, rovnako ako to. A kompilácie to. Áno. Tak ako vy môžete vidieť z výstupy, pamätajte booleans v C sú vždy vyjadrené v binárnej. 1 je pravda. 0 je false. Ak by sme mali spustiť tento Funkcie na povrázku jednej, čo Hi, volám sa Andi-- Je zrejmé, že je výsledok sentence-- vytlačiť na hodnotu 1, ktorý presne. Druhý, ktorý je len slovo, výsledok vytlačiť na 0, čo je falošný. Každý jasný druh o tom, ako Táto funkcia bola napísaná? Jo. Divákov: Môžeme tiež urobiť, namiesto toho, sa nerovná nie, rovná sa rovná 0, tak, že je rovná? ANDI PENG: Nie. Vzhľadom k tomu, strchr je funkcia. Chystám sa späť na túto. Takže čo je návratový typ našej strchr funkcie? Publikum: Oh, OK. Alebo NULL. ANDI PENG: Jo. Je to char *, ktorý mi hovorí, že bez ohľadu na Táto funkcia sa vracať, to bude ukazovateľ. Buď ukazovateľ bude ukázal na miesto, kde je to našiel, alebo to bude návrat ukazovateľ na NULL. V oboch okolností, bude to vrátiť ukazovateľ na niečo. A tak ak ste sa porovnávať to rovná, rovná, 0, budete mať chybu kompilácie. Vzhľadom k tomu, že to bude vracať ukazovateľ. A vy budete snažiť porovnať ukazovateľ na celé číslo. A počítač nie je bude páčiť. Jo, presne tak. Super. Všetci dobre? A za druhé, budeme ísť cez funkciu nazvanú strstr. Žiadne starosti, ak tieto funkcie sú mätúce vás. Oni ma mätúce. Ako taký, vy mohol vidieť, všetci znie skoro rovnaké. Proste vždy, keď si zmätený, vytiahnuť string.h knižnicu. A vy môžete zoradiť prostredníctvom ktorého je ktorý. Takže strstr, všetko, čo robí, je vyhľadávanie reťazec pre celkom iné reťazca. Takže tam, kde strchr len vyhľadávanie pre jeden znak, strstr hľadá celý reťazec. Tak som sa chcel pozrieť, vôbec sa mi nepáči Viete, Ahoj, volám sa Andi. A názov Môj najlepší priateľ je tiež Andi. Keby som chcel hľadať v tejto trest pre celú slovo Andi, môj ihla by bolo čo hľadáte. A vaše kôpka sena je čokoľvek hľadáte pre to v. Takže ak hľadáte špecifické slovo vnútri vety, to slovo bude vaše ihly. A potom veta sama o sebe bude váš kope sena. A tak to jednoducho prehľadá prvý výskyt z reťazca ihly v reťazci kope sena. Vracia ukazovateľ na prvý výskyt. Až na to, nezabudnite v tomto prípade, je to Prvý výskyt celého reťazca že hľadáte pre, nie len charakter. A tak to je takmer to isté ako funkcia sme práve urobil, len s trochu viac špecifickosť. Vzhľadom k tomu, hľadáte viac než len jeden znak. A využitie je presne rovnaký ako ten, ktorý sme práve urobili. Každý, kto v poriadku s tým? OK. Posledný človek budeme ísť cez je strrchr, čo nie je zamieňať s strstr alebo strchr. strrchr má navyše v r tam. Buďte opatrní, keď píšete. Môžete nájsť sami, vrátane extra r alebo nie vrátane r, a potom sa vaše funkcie sa dostal nebude fungovať. A ty budeš zmätený. Dávajte pozor, aby ste pravopisu Všetky tieto funkcie priamo. Takže strrchr je presný to isté ako strchr okrem vyhľadá nie je prvý výskyt špecifických znakov, ale skôr posledný výskyt. A tak, v tom zmysle, je to takmer presne rovnaký. Ale namiesto toho, pohybujúce sa odovzdať v reťazci, budete sa sťahovať vzad v reťazci. Presne to isté, ste len vyhľadávanie v inom poradí. A tak by to mohlo byť super, Super užitočné pre vyhľadávanie funkcie, prvý Funkcie na pset. Poďme predstierať, že sme potrebovali napísať Funkcie void predĺženie, v ktorom sme odovzdať názov * súboru konštantný char, len reťazec, názov súboru, , Ktorý berie v tomto mene a vytlačí out rozšírenie tohto súboru. Tak napríklad, ak by bola k I prejsť v reťazci pset7.zip, že to bude len vytlačiť rozšírenie, čo je .zip. A to bude fungovať pre nejaký druh rozšírenie, .docx pre Word alebo pdf pre PDF súbor alebo HTML na súbor HTML. Celkom veľa, napísať funkcia, ktorá môže urobiť. Ja som vlastne bude prejsť na IDE. Nie je load-- tam pôjdeme. Takže všetko, čo som urobil, je tu vytvoril char *, prvý reťazec, volal pset7.zip. Chystám sa priblížiť. Vytvoril som druhý reťazec volal finalpaper.docx. A napísať mi funkciu, ktorá pri volal bude len vytlačiť prípony názvov súborov. Možno trvať pár minút premýšľať o tom, ako budete postupovať. Mierne náročnejšie než ten posledný, ale použitie je takmer presne to isté. Jo. Takže napísať funkciu nazvanú príponu že, keby som vám názov súboru, keby som, aby vám pset7.zip-- I aby si vytlačiť len .zip. Ak dám vám páči finalpaper.docx, len vytlačiť DOCX, len rozšírenie akéhokoľvek súboru. To vlastne len trvá dva riadky kódu. A tak sa snaží zistiť, či vás môže snáď to urobiť v tom. Vlastne je to len trvá jeden riadok kódu. Ale dva riadky je pravdepodobne viac štandardom. Aké funkcie sme pravdepodobne bude chcieť zavolať? Divákov: strrchr. ANDI PENG: strrchr, vpravo. Vzhľadom k tomu, čo hľadáme z pravej vľavo. Nedal som vám chlapci Príkladom takto, ale keď som dal vám príklad, ako www.apple.com a ja som chcel, .com, by to byť príklad, kedy Ak chcete volať na poslednú inštanciu doby, a to prvé, že? Ak ste boli volaní strchr to, by si dal tú apple.com. Ak ste volal strrchr to, by vám dal .com. A tak buďte opatrní, na ktoré ways-- v mojom príklade, by pravdepodobne mohlo by mohli mať práve napísal ho pomocou strchr, pretože tam je len jeden bod. Avšak v iných prípadoch, ktoré nemusí byť prípad. A tak sa vždy snaží navrhnúť váš kód dobre, takže that-- jo? Divákov: Takže v Príkladom ste práve povedal, Ak tak urobíte, že by strrchr dám .com alebo len prísť? ANDI PENG: To by vám dať .com. Divákov: OK. ANDI PENG: Jo. Poukazuje na miesto, kde ho našiel. Jo. 30 sekúnd možná? Jo. Všetci dobre, alebo možno trochu viac času? Show rúk? Show hláv? Super. Každý, kto chcú dať mi prvý riadok kódu pre tento program? Divákov: [Nepočuteľné]. ANDI PENG: Takže v prvom rade, poďme možná rozčleniť tento systém. Takže to, čo je typ návrat strrchr? Poďme späť. strrchr, aký je typ návrat? Publikum: Char * ANDI PENG: Je to char *, že jo? Čo znamená, že budete pravdepodobne bude chcieť vytvoriť ďalšie char * na druhu skladu, kedykoľvek je to návrate do, že jo? Vzhľadom k tomu, ak zavoláte funkcie strrchr, to bude vám ukazovateľ všade tam, kde je zistené, že posledné obdobie, v poriadku? Ale budete chcieť ukladať, že niekde, že jo? A tak ako sme kód toto do nášho programu? Publikum: Robíš char * [nepočuteľných]. ANDI PENG: Jo. Divákov: [Nepočuteľné]. ANDI PENG: strrchr. Jo. Oh, vynechal r tam. Divákov: Názov súboru [nepočuteľných]. Čo je to? Ach, to je len to. ANDI PENG: Oh, je to len to. Jo, sorry. Moja chyba. Príklady nezodpovedá. Divákov: A potom dot. ANDI PENG: Jo. Buďte opatrní, keď chlapci are-- tu, dajte mi priblížiť. Tam sme ísť. Buďte opatrní, keď chlapci písanie, najmä keď robíte len char. Je to naozaj jednoduché omylom práve robiť dvojité úvodzovky, skôr než jeden. To nebude fungovať. Váš kompilátor bude sťažovať. A vaša funkcia je jednoducho nebude spúšťať. A tak buďte opatrní pri robíte veci s znakov, že je to apostrofy. A tak sa tento riadok Kód zmysel pre každého? Sme vytvoriť char * ukazovateľ. Vzhľadom k tomu, strrchr priznanie niečo typu ukazovateľ. A tak budeme volať strchr na s, čo je reťazec, súbor meno, že sme odovzdaním. A my hľadáme pre posledný inštancie obdobie, ktoré je len jeden citát dot jedinú ponuku. Jo. Divákov: Kedy používame úvodzovky a keď máme používať apostrofy? ANDI PENG: Jo. Takže úvodzovky sú používa vždy, keď vás majú reťazec viac než len jeden. Takže ak robíte strstr, čo je ten, ktorý vás vyhľadať reťazec pre reťazec, vás by odovzdať ju do úvodzoviek. Ale kedykoľvek je to len jeden znak, Chcete urobiť jednoduchých úvodzovkách. Je to dobrá vec, mať na pamäti. Takže teraz, že máme naše ukazovateľ, čo budeme robiť s tým? Žiadam ťa ľudí na tlač to, že jo? Takže [nepočuteľný], chcete daj mi riadok kódu? Publikum: printf-- ANDI PENG: Jo. Divákov: --you potrebovať držiak miesto. ANDI PENG: Jo. Divákov: Vytlačte zástupnú. Ja neviem, čo to miesto Držiak je ale poukazujú na to. OK. Poďme preskočiť, že pre túto chvíľu potom. Divákov: A potom comma-- ANDI PENG: Pointer, že jo? Publikum: Pointer, Jo. ANDI PENG: Tak trochu chyták, má čo do činenia s ukazovateľmi a slučke že sme trochu hovorili už o. Aký druh držiteľa miesta my potrebujete pre ukazovateľ na char *? Divákov: [Nepočuteľné]. ANDI PENG: Jo. Je to jednoduchšie, než si chlapci myslia, že je. Publikum: String? ANDI PENG: Je to len reťazec, presne tak. Vzhľadom k tomu, pamätajte reťazca v skutočnosti neexistujú. Char * je presný to isté ako reťazec. A tak skutočne to to je to, čo by mala byť použitá po celú dobu. OK. Uvidíme, či sa nám podarí skúsiť spustiť tento. Poďme urobiť make rozšírenie. Super. Vy ste vidieť, ako som išiel v psset7.zip a finalpaper.docx, a to len vytlačí ZIP a DOCX? Dáva zmysel? OK Takže myslím, že vo vašom Pozrite sa hore Funkcie v pset, ktorú ste bude požiadaný, pokiaľ Reťazec má určitú koniec, musíte dať určitý chybový kód. A tak to bude dosť hrozné. Vzhľadom k tomu, či môžete prísť čo je prípona, potom môžete porovnať, že Rozšírenie aby zistil, či sa zhoduje up s určitou príponou. A potom sa môžete vrátiť chybové hlásenie, že jo? Jo. Divákov: Takže my nie musieť pridať 1 alebo niečo? Ukazovateľ pôjde na the-- ANDI PENG: Nie. Divákov: --point po ňom. ANDI PENG: Jo. Poukazuje presne kde sa udalosť bola. Tak napríklad tu, my sme hľadal obdobie. Takže to bude návrat ukazovateľ na obdobie. A potom to bude tlačiť tak, že vychádzajú na obdobie. Takže sa nemusíte pridať 1. Aj keď, je to úplne v poriadku, ak na ste niekedy istí, aby len tak z vyskúšať si to sami. Vybudovať ukážkový program. Vyskúšajte si to sami a vidieť, kde je to tlač. To tiež nie je zlý spôsob, ako to urobiť. Super. A to je skoro všetky Mal som pre vás dnes. Urobili sme veľa vecí pset dnes. Takže v prípade pochybností, ako je Povedal som, vždy vyhľadať string.h knižnica pre tento pset. Tam to bude veľa Funkcie v tam, že môžu byť užitočné. Niektoré nemusia byť užitočné. Ja naozaj neviem. Wade cez to, že je celá partia z nich. strstr, strchr, strrchr sú super, super užitočné, tak aj na strcpys a strcasecmps že sme už používa. Je to len veľa pohrávate s struny, určovanie, či sú rovné, dostať veci z reťazcov, a je schopný správne otvárať súbory. Je to veľa súboru I / O. pset to naozaj nie je tak zlé. Budeš trvať pozrieť sa na to, stiahnuť, a vidieť veľa kódu. Bez obáv, tým ste kód vlastne napísať, vôbec zlé. Ak má niekto problémy s ich Server, za mnou po časti. Ospravedlň sa opäť za to, že prinášať cukroví Halloween. Ja neviem, čo sa so mnou deje. Ale budeme mať double cukroví nabudúce. A veľa šťastia vo vašej pset tento týždeň. Áno.