ANDI PENG: Mi smo gotovo kroz sve psets. U stvari, mi smo kroz većinu od najtežih psets. Tako smo zapravo samo ide vrste povjetarac kroz sljedećih nekoliko tjedana. Ćemo početi govoriti o našem Konačni projekti, događaji dolaze u sljedećih nekoliko tjedana. I život će biti povjetarac. Dakle, ne previše danas. Nadam se, zapravo će povjetarac kroz dnevni red za danas, a potom se odavde s malo vremena na pretek. Također, želim se ispričati za nedostatak slatkiša danas. Ne znam zašto. No, u tjednu uoči Halloween, ja bih zaboraviti slatkiše. Dakle, ja sam zapravo samo velika razočaranje za vas upravo sada. Zato sam doslovno sjećam slatkiša za svaki razred, ali Halloween. Ali sljedeći tjedan, ja ću dovesti udvostručiti količinu slatkiša kako bi se za to, sve za tebe. To će biti velik. Dakle, imam par najave u vezi neke raspoređivanje. Imam neke raspoređivanje pitanja. Zatim ćemo prijeći na razgovarati o tome što se zove chmod. Idemo razgovarati o Brzo TCP / IP HTTP. A onda ćemo to kod naših vlastite web stranice pomoću HTML i CSS. A onda ću stvarno otići možda kao i 20 minuta razgovarati o pset6. Zbog pset6 je zapravo puno stvari koje smo već vidjeli, ali sam htio osvježiti neke od tih pojmova kao i naučiti par novih funkcija. Cool. Dakle, prije svega, dobrodošli natrag iz pauze. Nadam se da ste stanka bila ugodna. Biste si učinio za odmor? PUBLIKA: Otišao je u New York. ANDI PENG: Ti ode u New York? Mislim da pola našu školu otišao u New York. Sve je u redu. Sam proveo većinu svog odmora sjedeći u krevetu Netflixing. I to je dobro vrijeme. Ali mi smo sada natrag, natrag sjednici, još u zamahu stvari. Imamo pset zbog ovog petka u podne. Mislim da ste već podigao svoj kviz, zar ne? Dakle, bilo tko drugi tko ima Nije imala svoje kvizove, dođite i dobiti svoje kvizova od mene na kraju odjeljka. Ili pratite me dolje na kampusu. Ja ću ga imati sa mnom negdje. Naš konačni projekt pre-prijedlog također. Dakle, za one od nas koji nikada nisu poduzete Ovaj razred prije, vršni kamen od CS50 itekako kulminirala u ovom velika projekta koje studenti predlažu. A pre-prijedlog, samo opća ideja onoga što on možda želite učiniti za svoje Projekt, ta ideja je zbog ponedjeljak, sljedećeg ponedjeljka u podne. Pa prilično mnogo, David mislim hoće više govoriti o tome u predavanju ako već nije. I tu je solidan stranica na našoj web stranici objašnjava svi zahtjevi projekta. Ali u biti, pokupiti bilo kojoj temi da ste zanima tijekom svoje vrijeme ovdje na CS, bilo da je to igranje ili dizajn ili video ili ništa. A možete zapravo vrsta Sada primijeniti neke od lekcija koje smo naučili ovdje u CS50-- hi, welcome-- se prilično provođenje konačni projekt vašem izboru. Sve to je zbog ponedjeljak samo kratak pohvala putem e-maila mi, brzo rečenica, kao, hej, Andi, Jako sam zainteresiran za projektiranje igra koja se ovaj za iOS. Cool. Samo neka mi svoju kratku početno Ideje za svoje završne projekte. A mi ćemo razgovarati putem ili ne to je zapravo dobra ideja ili ne, ako je to izvedivo ideja ili ne. Ali samo pre-prijedlog je zbog sljedećeg ponedjeljka. pset6, naš lijepi web-- to je u redu. Pset7? pset6? To je pset6, zar ne? pset6, naš web poslužitelj, zbog Petka u podne s krajem dana. Radno vrijeme nastaviti normalno od ponedjeljak za četvrtak 8:00 do 11:00 ovaj tjedan. Mislim Commons za sljedeća tri noći. Cool. Prije nego što smo imali u materijalu, bilo tko Za sva pitanja, šale, priče? Što si učinio za jesen odmor? PUBLIKA: Što mi je činiti? ANDI PENG: Već to je prije vremena vjekovječnih zapravo. Christabel otišao u New York. Ostao sam ovdje i Netflixed. PUBLIKA: Oh, da sam bio ovdje. ANDI PENG: Oh, u redu. PUBLIKA: Ne sjećam se što je posebno. ANDI PENG: To je u redu. PUBLIKA: Netflixing vjerojatno. ANDI PENG: Netflixing. Da, to je dobar put. U REDU. U redu. Bilo kakva pitanja prije ćemo skočiti u materijalu? Također, mi ćemo pokušati ubrzati putem sekcija i danas, ne previše pokriti. I nadam se, da ćemo dobiti ovdje je malo rano. Žao nam je za ne slatkiša, također. Ja sam razočarao posebno tijekom Halloween. U redu. Cool. Tako ćemo početi govoriti o naredbenog retka argument zove chmod. chmod, sve je to samo Unix sustav poziv provodi iz naredbenog retka za promjenu dozvole za datoteku. Tako, na primjer, imamo Sve naišao stranicu kao što je to vjerojatno negdje u naš životni vijek se internet Korisnik, gdje je naš web poslužitelj mora dao nam pogrešku zabranjeno. Nemate dopuštenje za pristup, bla, bla, bla, na ovom poslužitelju. Sve to zapravo znači je da su dozvole koji su vezani za ono što Stranica koju pokušavate pristupiti nisu bile otvorene za vas. Pa prilično mnogo, chmod je način na koji možemo mijenjati one sustava dozvole dati svima, korisnik, grupa, ili svijet, ili bilo Kombinacija tih pristupa na određene datoteke, direktorije, ništa stvarno, bilo kakve sustava na operativni sustav. Dakle, ako bilo koji od dečki imaju računala ako se osjećate kao što slijedi zajedno sa mnom danas, potpuno slobodno upišite samo stvari u. Ako ne, možete samo družiti. Tako ću zapravo povući moj terminala upravo sada. Dakle, naredba za pokretanje chmod, ili barem samo na popis dozvole vašeg file katalog, samo ls-l. Kao što možete vidjeti, gomila stvari iskače od kojih je većina je važno za nas na lijevi bočni ovdje. Vi vidite hrpu RS, WS, 1 /. Da. Oni su u biti samo sve dozvole datoteka objasniti što određene direktorije i datoteke unutar svog sustava imaju. Tako ćemo se vratiti moć točka ovdje. Dakle, osim imena datoteka što vi možete vidjeti na desnoj strani, mi smo u potrazi vidjeti bitno samo stupac na lijevoj strani. Dakle, uz samo imena datoteka, mi možete vidjeti dozvole datoteka, njihov Vlasnik grupe, naziv skupine, datum da je datoteka posljednji promjene, i tako dalje. Možete vidjeti mnogo stvari pomoću chmod. Dakle, način na koji čitamo chmod je da prvo slovo smo prilično mnogo ignorirati u smislu dozvole čitanja. Prvo slovo samo nam govori ono što vrsta sustava smo pristupu. d, u ovom slučaju, je mape ili mapa. Tako znamo da je trenutno moj radni prostor poglavlje sedam je katalog. I onda vidiš tri trijade, u biti samo tri seta tri znaka. A možete misliti jedni kao malo. Dakle, samo trebate tri seta tri bita, bita ukupno devet. Možete ih tretirati u skupinama od tri. Dakle, prva skupina tri je uvijek vaš korisnik dozvole. Vaš Druga skupina tri je uvijek vaš grupa dozvole. A tvoj treći set od tri Uvijek je kao svijet, su posvuda dozvole. Dakle, mislim da je lako pitanje koje treba postaviti je što je razlika između korisnika i grupe. Glavna razlika između korisnika i grupe je da korisnik samo vi osobno Pristupom god to je upravo sada. A može biti, ako imate više Korisnici na jednom računalu, na primjer. Svi oni mogu biti tretirani kao grupa. A onda je svijet samo svijet, svi. Tako možemo vidjeti kasnije o tome kako možemo mijenjaju one u različitim dozvolama. Pa prilično mnogo, mi smo ide dalje fokusirati na dijelu s lijeve strane, gdje za katalog CS50 vidimo drwx, gdje je r samo znači da je čitljiv. V samo znači da je moguće pisati. A onda su x samo znači da je izvršna. Ti bi to misliš vrsta od nema smisla. To bi trebao biti e. No x zapravo vrsta radi malo bolje, jer ga možete se sjetiti bolje. Tako su tri vrste stvari koje možete učiniti, možete ili pročitati datoteku, možete imati dozvolu napisati datoteku, ili možete imati dozvolu izvršiti datoteku. I tako je način na koji smo zapravo predstavlja one u bitovima predstavlja brojeve 4, 2, 1 i. Dakle, sve što je čitljiv je predstavljen brojem 4. Sve što je moguće pisati predstavlja 2. I sve što je izvršna kao što je prikazano 1. Dakle, u tom smislu, možemo također predstavljaju ove numbers-- Bok, dobrodošli, na drugačiji način. Oprostite. Prije svima, idem Ispričavam se u ime svih ulaska sada klase. Zaboravio sam slatkiše i danas. Žao mi je što sam neuspjeh ovaj tjedan Halloween. Ja ću donijeti dvostruki iznos Candy sljedeći put kako bi se za njega. No, bilo kako, ispričavam se o da dečki, žao. Dakle, način na koji možemo zapravo ulaz na našem naredbu argument smo možete učiniti chmod skupina Slash dozvole, gdje je grupa samo bilo što Skupina pokušavamo promijeniti. A dozvole što god želimo dodati na njega. Tako je na primjer, plus dodaje dozvole, i oduzimati oduzima dozvole. I vrste skupini imamo A za sve, u za korisnike, g za grupe, ili o drugima. To je malo apstraktno upravo sada. No, mi ćemo ići preko par primjera samo pokazati ovo jako brzo. Svatko dobro na ovo tobogan, tako da mogu krenuti dalje? Cool. Tako, na primjer, rwx. Prije nego što smo razgovarati o tome što ona predstavlja, Prije svega što rwx znači? Ako vidite da je to sigurno datoteka ima dozvole rwx, što to znači da osoba može biti u mogućnosti to učiniti? PUBLIKA: čitati, pisati i izvršavati. ANDI PENG: Da, točno. Možete pročitati pisati i izvršiti. Zbog svega tri od onih likovi su prisutni. Dakle, ako ćemo ići naprijed i razgovor o tome u smislu bita, rwx također može prikazati kao 700. Jer kao što možete vidjeti u bilo vrsta datoteka imenik dopuštenja, postoji tri trijade. U tom slučaju, samo prvi trijada nema ništa tamo. Tako da u tom slučaju, R 4, v je 2, a x je 1. Dodate li oni zajedno, to je 7. I tako, ako se pretvoriti to Binary, to je 700. Budući 7 je prva trijada. 0, nema ništa prisutni u drugom trijade. I onda nema ništa prisutan u treći trijada, tako da je još jedna 0. Dakle, u istom smislu, hrpa trijade mogu zastupati samo u bita, samo u binarnom kao dobro. Dakle, 700 znači točno istu stvar kao i rwx ------ u smislu dopuštenja. Svatko jasno? Cool. I tako chmod 111 će dati koja dozvole za datoteku? Dajte vi momci par sekunde pretvoriti ovo. Zapamtite, prvi trijada je za korisnika. Drugi trijada je za skupinu. I treći trijada je za svakoga. I tako chmod 111 će dati što Vrsta dozvolama i kome? Uzmite par sekundi da razmišljati o tome i vratiti. Da. PUBLIKA: Pa svatko može ga izvršiti. ANDI PENG: Da, točno. PUBLIKA: Ali nitko ne može čitati ili pisati. ANDI PENG: I slobodno objasniti svima Kako ste došli do tog zaključka. PUBLIKA: Pa, za korisnika, skupina, i svijet, to je sve 1, koji je kod za izvršne. ANDI PENG: Da, točno. Dakle 1, u ovom slučaju, svi znamo da je da da je izvršni kod. Jer čitanje je 4. Pisanje je 2. I izvršna je 1. Tako je sva tri trijade su 1, koji znači da je na svijetu, za korisnika, i u skupini, su su izvršna. Svatko dobro s tim? U REDU. I tako drugi put da možemo zapravo pisanje i to je li može samo učiniti chmod plus x. znači sve ili svakoga. Plus znači davanje dozvole za. A onda je x znači izvršna. Dakle, postoje dvije naredbe su zapravo identične. Dakle, ako želite pokrenuti ovo u svoj terminal, vi chmod 111, ime Vaš katalog ili datoteku. Ili možete napraviti chmod plus x, naziv vašeg direktorija datoteke. Ista stvar, samo lakši način, Možda, za neke predstavlja ili promjene dozvole za datoteku. Svatko u redu s chmod prije nego što smo prešli na? Cool. Dakle, sada ćemo krenuti u Nekoliko snimaka vrlo apstraktnih pojmova da sam prilično puno će povjetarac kroz. I to je sasvim u redu ako vas ne razumiju sve. Čak i sada, ja još uvijek ne stvarno potpunosti razumiju sve. No, to je više od dobivanja najviša razina razumijevanja kako neke od tih stvari raditi. Tako ćemo razgovarati Brzo o TCP / IP, što je samo kontrola mjenjača Protokol slash Internet Protocol. Sjetite od predavanja, David je on vas naučiti primjer gdje bi proći bilješke u koverti do vole vrh dvorani? Dakle, u dvorani Pravnog fakulteta David je pokazao bitno kako TCP / IP radi u osjećaj da je sve to je je sredstvo osiguranja te podatke je isporučio preko poslužitelja ili na internetu. Tako je u primjeru omotnice i poruka, korisnik na kraju mogao vidjeti da je, oh, trebao sam dobivaju četiri paketa informacija. Ali ja zapravo dobio samo tri. To znači da moram biti nedostaje jedan. I jedan nije isporučena. I tako TCP / IP na internetu, putem računala i poslužitelja, ne točno istu stvar. Sve je to ipak odredite okvir u kojem se izgubljeni podaci paketi mogu zamjeriti i dobio. Kao na internetu kada pokušavate pristup datotekama online ili slati datoteke za svog prijatelja ili pogledajte web preglednici, tisuće i tisuće milijardi i milijardi bajtova podataka prenose po milisekundi. I to je jako, jako zbunjujuće. I to je stvarno teško zapravo znam što je poslana i što nije poslana. I tako TCP / IP jednostavno određuje kohezivan okvir u kojoj vaše web preglednik i vaš poslužitelj možete vrsta komuniciraju međusobno, jednostavno pobrinite se da su paketi svi ovdje i ništa izgubio i svi podaci koje ste zatražili zapravo prikazuje ispravno. Svatko OK na upravo to vrlo Ukratko visoka razina razumijem? Cool. Pa onda ćemo premjestiti u govori o HTTP, koji samo Hypertext Transfer Protocol. HTTP, sve je to je ono bilo koju stranicu ili datoteke pristupiti na Vašu web stranicu, poslužitelj vraća HTTP Stanje kod u odgovor na zahtjev pazeći da bilo, oh, taj zahtjev je otišao preko. I sve je prikazivanje ispravno. Ili, oh, ne, 404. Nešto je pošlo po zlu. Oh, ne mogu prikazati. Sve to je da je bez obzira na koju pokušavate pristupiti, koristiti kao korisnik pokušava pristupiti, na internet-- samo pazeći da ili uspješno pristupiti što god to bilo ili ne Uspješno pristupiti što god to bilo. I tako HTTP statusa broj samo ti pruža sredstvo za bitak u mogućnosti to znati je li ili ne to je bio uspješan ili ne. Tako, na primjer, primjer zahtjev. Možete vidjeti ovdje je obično obično četiri stiha. Imamo GET HTTP 1.1, što je samo URL zahtjeva metoda, protokol verzija, naziv polja, a vrijednost polja. Dakle, nema potrebe da se u potpunosti pamtiti ništa ovdje. Samo vrsta upoznavanja sami sa kako ti izgleda. U ovom primjeru, zahtjev metoda URL je samo ono što je zahtjev šaljete poslužitelj. Kao, hej, poslužitelj, ja stvarno želim Pristup bla, bla, bla, HTTP str. Protokol verzija je samo bilo što Verzija vaš domaćin ili poslužitelj koristi za pristup informacijama. Ime polje je web stranica ili URL koji ste pokušavate pristupiti, u ovom slučaju, www.apple.com. A vrijednost polje Samo obično ime, vrijednost. I to može biti bilo kakve kombinacije slova ili brojeva ili bilo što drugo. Tako tipično zahtjev, pa što vaše računalo zapravo šalje na poslužitelj koji kaže, hej, znaš što mi treba to prikazuje, to je vrsta zahtjeva da su oni zapravo dobivaju. Primjer odgovor na to što je poslužitelj će poslati natrag na vas će biti manje-više ista stvar, osim s kodom statusa na vrhu. Dakle 200, 2 0 0 je uvijek status kod za OK. Kao, u redu, taj zahtjev je otišao preko. Ste bili u mogućnosti pristupiti ispravno sve. Život je dobar. Život je u redu. Sve je totalno dobro. I tako to samo govori svoj preglednik i Vaš poslužitelj, hej, sve je dobro. Dobio sam sve informacije trebam. Cool. No, problem je Ponekad problemi dolaze kada have-- trajati mislim Razgovarao sam o duplikate. Imate manje dobre odgovore. Tako, na primjer, 404 je stranica nije pronađena. Ponekad imaju Forbidden pristup. Imate razne druge šifre statusa koji sam jeste li svi vidjeli kad ste pokušava napraviti istraživanje na internetu. I vaš preglednik vam daje , ne, ne mogu pristupiti. A ti si kao, dobro, sranje. Tako je samo prilično mnogo, ne postoji neke prilično uobičajene šifre statusa. Možda se upoznate s kojima oni su to. Najsmješniji onaj koji Mislim da sam ikad čuo of-- ako vam se dogoditi da gledati ih sve online, iz nekog razloga postoji zapravo pravi statusni kod nazvao 418 Ja sam čajnik. Ja googled gdje Podrijetlo je to još od. A očito jedan travnja Fools ' Prije par dana desetljeća, netko mislio da će to biti smiješan stvoriti novi statusni kôd zove 418 Ja sam čajnik. Legitimno, naziv ovog broj se zove ja sam čajnik. Zaboravio sam ono Stranica morate ići zapravo čine ovaj zaslon. No, očito, možete zapravo dobiti kod statusa sam čajnik nekako kroz radite nešto. Dakle, postoji stotine i stotine statusa kodova. Neki od njih čine više Osjećaj od drugih. No, prilično jednostavno upoznati sami sa najčešćih one. Traženi entitet tijelo kratko i krupna, očito. Dakle, ponekad postoje više zastrašujući pogrešaka nego sam čajnik. No, to je onaj koji mislim ste vrsta nadam pogoditi. Ali ja ne mislim da će. Svatko dobro na samo status kodovi, zahtjevi, postupci, izrada je li se podaci dostavljaju ispravno? Dakle, sada ćemo tranziciji u od zabavan dio sekcije danas, gdje smo razgovarati malo o HTML-u. HTML, sve je to HyperText Markup Language. To je samo standardni jezik koristite za stvaranje sve web stranice na internetu. Dakle, bilo koje web stranice, što je Vaša omiljena web stranica? Koja je vaša omiljena web stranica? PUBLIKA: [nečujan]. ANDI PENG: Žao nam je? PUBLIKA: Tumblr. ANDI PENG: Tumblr. Dakle, Tumblr je napisan u HTML-u. I tako ćemo zapravo proći i poigrati s nekim od tih stvari kasnije. Gotovo sve vas trebaju naučiti, znati, pisati HTML vjerojatno možete samo Google na internetu. HTML, to nije program poput C gdje možete stvoriti varijable i raditi cool stvari s njim. To je više od samo, oh, to je kako sam Želite stvari da se pojavi na moje web stranice. A ja sam samo će ga staviti u. I to će ga stil. Dakle HTML, u smislu, to je samo kao oblikovanja ili predložak jezik. To je puno lakše. To je puno lakše učiti, puno lakše pisati u od tipičnog programiranje jezik, vrlo lako, vrlo korisnik dostupna i prijateljski. Tako smo zapravo ide igrati oko, pisati vlastite stranice danas. No, prije nego što počnemo, ja samo želim ići preko neke kratke najbolje prakse. Budući HTML je kao jednostavan jezik i jer čak ako to učinite par stvari krivo, ponekad ne može primijetiti, želimo biti sigurni da smo zapravo pridržavanje naših najboljih praksi kako bi bili sigurni da su stvari koje može se ide okolo, ali nisu uvijek ide da se ne ide u pravu pobrinite se da oni na minimum. Pa prilično mnogo, uvjerite se Vaši zatvaranje sve svoje oznake kada pišete u HTML. Ako ste otvaranje Tijelo, pobrinite se da ste zatvaranja s tijelom negdje. Vi želite biti sigurni da je vaš Web stranica potvrđuje pomoću ono što se zove W3 Validator. Možete samo Google da online, a tu je link na njega. A onda želite odvojeni HTML, koji je tvoj jezik za označavanje iz svog stila, što je CSS jezik koji je David pokazali da smo također će igrati malo s predavanja. Cool. Dakle, kad god želite pokrenuti HTML na CS50 aparata, ćemo pokrenuti Program se zove Apache, a sve to samo je izgrađen u web poslužitelj da svatko u CS50 ima pristup. Zovemo ga apache50 samo zato što smo vole zvati sve 50 u CS50. Dakle, način na koji ste pokrenuli CS50 web poslužitelj, pokušajte na vaše naredbe crta apache50 početi točku. A ako želite završiti u bilo put, apache50 ne završavaju bez točku. A ti samo pritisnite Enter. I to bi trebao biti na čelu ovdje uskoro. Da. Tako Samo ću brzo ići preko primjer jako kratko web stranice. A mi ćemo provesti kao i 10, 15 minuta reprodukcije oko pisanja vlastite web stranice. U REDU. Dakle ovdje u IDE-- može svatko vidjeti? Ne baš. Evo, ja ću zumiranje. Upravo sam dobio ovaj kratki obrazac ovdje ništa zapravo u njemu. Samo ćemo brzo pisanje HTML program u kojem smo upravo pozdraviti svijetu. Dakle ista stvar kao u C, sada smo Samo će to učiniti u HTML-u. Se bilo tko želi zapravo samo pokušajte da mi je prva stvar koju morati staviti u HTML dokument? Da. PUBLIKA: Umetci je [nečujan]. ANDI PENG: Aha. Dakle, nešto što je vrlo jedinstven za HTML da smo obično tradicionalno ne susrećemo u drugim zapovjedništvom Razina linija programski jezici je da smo zapravo odrediti vrstu datoteke da će to biti na vrhu našeg koda. Tako je u ovom instance-- mislim to je pravo naredbe, zar ne? Da. Na vrhu, samo želite uključiti bang DOCTYPEhtml na tipkovnici jednostavno reći svoje računalo, hej, čuvajte se. I HTML dokument dolazi. I onda kako želimo krenuti našu sliku? Ako samo želite pozdraviti, imaju web stranica koja kaže hello svijetu, kako idemo o izgradnji ove? Zapravo, neka je obratiti Googleu. A mi zapravo može to učiniti. Da. Idemo tamo. Tako HTML. Kao što možete vidjeti, moj preglednik je zapravo automatski styling ovo za mene. Ista stvar kao u C, kada se stvoriti otvorenu kovrčavu braće, Vaš preglednik automatski dodaje se u neposrednoj kovrčave braće. Srećom, naša IDE voli to učiniti za nas, kao dobro. Tako sada možemo vrsta upisati početak oznaku, i to će nam uvijek reći ne zaboravite upisati kraj oznaku. Mislim da to treba kapitaliziraju. A onda želimo dodati, uvijek, glava u kojoj je naslov. Mi samo želimo možda nazvati to zdravo, a zatim tijelo. I tamo idete. To je zapravo naša HTML dokument. Dakle, način na koji svaki HTML dokument uvijek styled in-- isto sa int main prazninu. Vi uvijek želite imati HTML je otvaranje i zatvaranje tag na vrhu i na dnu vašeg koda. Želite imati glavu unutar koji sadrži naslov, samo ono što će prikazati karticu vašeg web stranica, a onda tijelo unutar kojeg zapravo će prikazati sadržaj bez obzira što želite učiniti. Dakle, ako ste htjeli da zapravo pokrenuti ovo ću uvećanje natrag. Možete zapravo započeti apache50 početi točku. Cool. I tako, kao što možete vidjeti, sada ovaj link je iskočio. Ona kaže da je vaš site je sada dostupan na nekom linku ispod. Dakle, sve naše IDE ima done-- Ne IDE, sorry-- da, naš IRO je učinio je stvoriti web Link na kojem sve naše web stranice može pristupiti na poslužitelju. Tako ćemo pogledati ovdje. Idemo kliknite na ovu, idite na hello.html. I vidite vrlo jednostavan web stranica za Hello World. U REDU. Mi smo zapravo događa samo imaju everyone-- da, što se događa? PUBLIKA: Imam osnovno pitanje. ANDI PENG: Yup. PUBLIKA: Kako uštedjeti Vaša datoteka kao HTML? ANDI PENG: Da. Dakle, ako sam bila stvoriti novu datoteku, ako mi je činiti novu datoteku, Untittle, ako mi je činiti, section.html, bum, to je sve što morate učiniti. PUBLIKA: [nečujan]? ANDI PENG: Ne PUBLIKA: [nečujan]. ANDI PENG: Ne PUBLIKA: [nečujan]. ANDI PENG: Da. Prilično mnogo, proširenje na datoteka koja se unutar svoje IDE, koja govori računalu da kaže preglednik, hej, čuvajte se. To će biti broj napisan na tom jeziku. Tako, na primjer, u Microsoft Riječ, što činiti sve Word dokumente završiti, što ekstenziju? .doc ili .docx, zar ne? Sve što čini je Određuje do Vaš operativni sustav, hej, imaš Word dokument uzlazi. Otvorite ga s Riječi. Ista stvar s PDF-ovima. Ona zna, ah, moram otvoriti ovu datoteku sa Adobe Reader ili Adobe Acrobat. I tako proširenja pogonskom na isti način kao u računalu. Ako navedete kodnu stranicu biti imenovan HTML, onda to zna, oh, imaš HTML kôd. Idem da ga tretiraju kao HTML koda. Pa to je super pametan u tom smislu. Tako svatko, uzmimo kao 10 minuta i samo stvaranje vlastite web stranice. Dodajmo u lijepim stvarima. Slobodno reći što god želite. Ja samo želim da biste bili sigurni da svakog čovjeka poslužitelji prikazuju ispravno prije nego što smo vas osloboditi u pset. Jer ako poslužiteljima ne kandidirati za pset, da će biti jako, jako loše. Samo ću da plutaju okolo i vidjeti što svatko radi na. Kako ide? PUBLIKA: Upravo sam okrenuo na moj računalo. ANDI PENG: To je u redu. PUBLIKA: [nečujan]. ANDI PENG: Samo tvoja IDE. Da. PUBLIKA: [nečujan]. ANDI PENG: To je u redu. PUBLIKA: [nečujan]. ANDI PENG: Totalno redu. Jesu li svi pristupu njihov web poslužitelj redu? Je apache50 trčanje u redu? Mislim da u nekim ostali dijelovi, mi imala problema s ljudima ne bitak u mogućnosti to pristup poslužitelju. Da. Tako da samo pokrenuti apache50 Prostor početi prostor razdoblje. PUBLIKA: [nečujan]. ANDI PENG: Yup. Dobro? PUBLIKA: [nečujan]. ANDI PENG: Oh, u redu. Dakle, ti si trebao imati prostora. Dakle apache50-- PUBLIKA: jesam. ANDI PENG: --start prostor. PUBLIKA: Oh, prostor točka. ANDI PENG: Yup, prostor točka. Izvoli. Pa onda, ako imate HTML stranica stvorena, onda možete jednostavno otići izravno na link da odredi. A ti bi trebao biti u mogućnosti to pristup. Svatko je u stanju pristup njihovim web stranicama u redu? PUBLIKA: [nečujan]. ANDI PENG: Oh, to je u redu. PUBLIKA: [nečujan]. ANDI PENG: Da. Mislim da zapravo mogu otvoriti je unutar vašeg preglednika, preglednik a ne samo vaš IDE pregledniku. Da, mislim da ako kopirate i zalijepite ga. PUBLIKA: A onda kako ćemo ga isključiti? [NEČUJAN] ANDI PENG: Da, vi apache50 zaustaviti bez razdoblju. Da. PUBLIKA: [nečujan]. ANDI PENG: Bez razdoblju. Da. Idemo tamo. Da. Mi smo stvaranje vlastite web stranice. PUBLIKA: Oh, super. ANDI PENG: Da. PUBLIKA: Imam pitanje. Dakle Apache 50-- ANDI PENG: 50, da. PUBLIKA: [nečujan]. ANDI PENG: Što? To je čudno. Vidi, to je vrsta izdanju što se događalo prije. U REDU. Vidi me nakon dijelu. Budući da imamo neke problemi s poslužiteljem. I želite napraviti sigurni da vaš poslužitelj je pokrenut prije početka pset. Jer ti si idući u je potrebna. Da. Ima li još netko da nije mogućnosti da biste dobili njihov poslužitelj za početak? Za one od vas koji želite dodati dodatni stil svoje web stranice, mi zapravo može učiniti ono što David učinio u predavanju, kao i, što je stvoriti dodatni stil list, što je dot CSS, kaskadno Style Sheet i zapravo samo ga dodati. Tako, na primjer, upravo sam stvorio prilično gotovo isti jedan David učinio u predavanju. Vi prilično mnogo možete učiniti samo tijelo. Imaš ono što se naziva oznake u kojima možete se prijaviti na IDE god odjeljak Želite okviru svoje Stvarni na HTML stranici. Dakle, tijelo stranici, možete učiniti poravnanje teksta centar. I onda ću kreativni oznaka pod nazivom Top unutar od kojih želim te stvari dogoditi, dodijeliti veću veličinu piksela za font. Želim težina fonta biti hrabar. I želim boju na biti plava, samo proizvoljna Vrijednosti koje sam odlučio izabrati. Ja mogu stvoriti još jedan oznaku nazvanu srednje. Veličina slova, čine ga malo manji. I onda ja mogu stvoriti drugu oznaku zove dno gdje želim veličinu slova biti još manja dalje. I tako prilično ovo je samo primjer izvornog koda ili izvornih stilova da je vrlo lako samo Google. Ako kažu, oh, ja želim svoj font biti u kurzivu i tamno zelena, možete vjerojatno Google, a onda će vam reći odgovarajuće oznake ili ID stvoriti. I tako je način na koji bi zapravo vrsta ima to u HTML dokument ili koristiti je sve što trebate učiniti ovdje je na čelu dodajte link na list stila. Dakle, možete jednostavno povezati href equals bez obzira na naziv vašeg style sheet je. A onda je odnos je stil list. Dakle, u bilo kojem HTML dokumenta, dok kao što su to dot CSS list, trebali biste biti u mogućnosti pristupiti i imaju svojstva tamo. Tako, na primjer, ovdje sam upravo stvoriti još jedan web stranicu primjer. Ovo je dobrodošao CS50 odjeljak Utorkom od 2:00 do 3:30 sa mnom. A onda sam dodao loptu sliku koja što potencijalno trebali biti u mogućnosti vidjeti. Dakle, ako ste pogledati ovdje, ako idete u style.html, smo izradili web stranicu sa mačićima. Zbog mačića su strašan. Tako dodavanjem slika je samo img src vezu. Prilično mnogo, ako postoji bilo kakve značajke želite dodati na svoj website-- pa recimo, Želite li dodati izbornik ili bar za pretraživanje ili slično image-- samo Google kako to učiniti. A ti samo buć u tom formatu. A možete jednostavno lijepa koliko samo ga dodati. To je jako, jako jednostavno. Mi stvaramo naš vlastiti web stranice odmah. Ako želiš-- PUBLIKA: [nečujan] ANDI PENG: Žao nam je? PUBLIKA: [nečujan]. ANDI PENG: O, div je samo podjela mi govori da, oh, imam određeni dio pod nazivom srednji u kojem sam primjene moja CSS oznake, a zatim moj drugi podjela s dna. To je sve to vam govorim. Budući da je lijepo čuvati stvari uredan kako, tako da program ne zna kako točno pokrenuti. I mislim da mogu kopirati zalijepiti u moj stvarni preglednik kao dobro. To bi trebalo biti u redu. Da. Jej. Dakle, ako svatko želi samo pokušajte izraditi web stranicu, ćemo uzeti još dvije do tri minute. Ja samo želim da biste bili sigurni svakog čovjeka poslužitelji su trčanje i svatko ima ideja kako to učiniti. Ako vi želite iznijeti svoje računalo. I dalje ne radi? PUBLIKA: Ja sam samo [nečujan]. ANDI PENG: Možda pokušati ažurirati 50 kao dobro. Da. PUBLIKA: [nečujan]. ANDI PENG: Da. Dakle, način na koji ste započeli novi web poslužitelj na IDE je samo učiniti apache50 prostor start prostor točku. Samo sam se htio uvjeriti svakog čovjeka poslužitelji prikazuju OK. PUBLIKA: Evo, na terminalu? ANDI PENG: Da. PUBLIKA: [nečujan]. ANDI PENG: Apache. Zapravo, mislim da si radi nešto već. Da, ti si zapravo trčanje drugog poslužitelja. Da, ti si dobar. Sve dok to radi, ti si u redu. PUBLIKA: U redu. ANDI PENG: Ima dva načina za pokretanje poslužitelja. Tako dugo dok jedan od načina radi, to je u redu. Uzet ćemo još minutu samo vrsta završiti završne god web stranica vi htjeli napraviti. Jesu li svi rade usput? Svačija poslužitelji trčanje osim za tvoje? Mi ćemo shvatiti da je van. I HTML je vrlo jednostavan. Dakle, mislim da smo svi dobro. Da. Ja ću se vratiti. PUBLIKA: [nečujan]. ANDI PENG: U redu. PUBLIKA: Pa to je samo počeo učitati. ANDI PENG: Bez brige. Dakle HTML, postoji izvorni kod koji će biti online, nakon dijelu. Također, David ima cjelinu Hrpa kao i online. Samo vrsta pogled preko nje se vidjeti kako HTML stranice su napisane. To je prilično jednostavan. Sve što ne znate, lijepo koliko samo Google i ti si dobar. Ja samo želim da biste bili sigurni da Vaši poslužitelji prikazuju. PUBLIKA: Da li je to često? ANDI PENG: Nikada nije mi se dogodilo. Nisam znao da čak hibernacije. PUBLIKA: [nečujan]. ANDI PENG: Mislim everyone-- moja nikad nije hibernated prije. I ne znam zašto. To je čudno. PUBLIKA: [nečujan]. ANDI PENG: Je li tvoje hibernacije? PUBLIKA: [nečujan]. ANDI PENG: Da. PUBLIKA: To je u redu. Dakle, nakon što je otvoren. ANDI PENG: U redu. Mi ćemo se bave nekim poslužiteljem problemi nakon dijelu. Trebali bi biti u redu. Iako, želite da provjerite da li dobiti ih riješiti prije nego što ostaviti. Jer ako vaš poslužitelj je ne radi, onda ste neće biti u mogućnosti to učiniti pset, kao i bilo koji dio pset. Dakle, želite biti sigurni kako da radi. Cool. U redu. Reći zbogom mačiće. Proveo sam dugo vremena u potrazi za da mačić slika staviti na. Dakle, bilo kako. PUBLIKA: [nečujan]. ANDI PENG: Žao nam je? PUBLIKA: [nečujan]. ANDI PENG: Mislim da je na web stranici. Kao spec? PUBLIKA: [nečujan]. Mislim da je spec je samo online u tjednu sedam. Mislim da se zove pset6, čak iako smo na tjedan dana sedam, što je bitno računalstvo. PUBLIKA: Ali mislim, ako vas želite pogledati at-- ako vas žele podići našu verziju web stranica od našeg Sever? Dakle, kao što server.c je pset, zar ne? Ako želite pogledati ovaj, kao kako se provjerava? ANDI PENG: Oh, pa zapravo pset, sve što radite Ovdje je implementing-- ovdje Ja ću ići preko ove nakratko. Dakle, za sve to je samo stečen poglavlju, vi ste u sreću. Tu je vrlo malo materijala zapravo pokriva i danas. Samo ću provesti sljedeći 20 minuta ide preko pset pomoć. Budući da je neke korisne Funkcije koje će vam pomoći vaš život. I nadam se, biti ćemo izvan od ovdje kao i 20 minuta. U REDU. Dakle pset7 je pogrešno. Iako smo na tjedan sedam, to je zapravo pset6. Ja ću to promijeniti. Sve što radite na pset6 stvara web-poslužitelj. To zvuči super zastrašujuće. A pogotovo za one od vas koji su već Pogledao distribucijski koda, ima puno koda, puno koda. Ali je potpuno u redu. Zbog gnjidama istrajan u dio zapravo stvara poslužitelj je učinio nama. Sve što ste zapravo pitali učiniti u ovom pset je jednostavno za napraviti neki string manipulacija u datoteci I / O. To je zapravo kao prilično jednostavan. Dakle, kada ste prvi put preuzeti that-- koji Ovdje je zapravo već preuzete pset i uzeti pogledati? U redu. Da. Tu je kao 500 linija koda da ćeš biti kao, Što se događa? I to je sasvim u redu. Provjerite jeste li gledati walk-provodnike. Jer je David and-- Ne znam. Ne mislim da je Zamyla-a, ovaj jedan. Ali mislim da su neki drugi walk-throughs su prilično korisna u smislu Samo ste vi znate što se događa unutar vašeg koda. I to je sasvim u redu. Budući da su četiri funkcije koje ste upitao provesti imaju zapravo nula veze s stvarnim poslužiteljem. Sve što morate učiniti je jednostavno gramatičku analizu različitih žice, traži po žicama, kako bi bili sigurni stvari rade ono što bi trebao biti događaj. Dakle, u tom smislu, postoje neke vrlo, vrlo korisne funkcije, posebno za niz manipulacije, da bismo svi trebali ići preko koje sam mislio bih biti vrlo koristan za vas dečki kako biste saznali prije nego što pokušate pset. I svi smo sadržane unutar string.h knjižnici. Tu je vjerojatno više koristan Funkcije nisam ovdje uključeni, jer bilo ih nikada ne koristi ili možda ja samo nisam znala da postoje. Slobodno pogled kroz student.h. Budući da će biti puno funkcija koje su vrlo korisne. Tako je šest koje sam koristiti najviše u mom pset kad sam bio događaj je prošlog tjedna su strtok, strchr, strrcher, strstr, strcasecmp i strcpy. I tako zadnje dvije može činiti prilično poznata većina od vas. Slučaj Str usporediti, sve je to ipak usporedbu žice da ih provjeriti jednakost, uključujući slučaj. I strcpy samo kopije jedan string u međuspremnik. I tako njih dvoje trebali činiti vrlo poznato vama u ovom trenutku. Zato smo ih koristi mnogo, pogotovo u posljednjih psets. Ali prva četiri možda niste vidjeli do sada. Ali ja ću samo proći kroz njih. Jer oni će učiniti svoje živote jako, jako jednostavan for-- nije lako, ali mnogo lakše za ovaj nadolazeći pset. U REDU. Dakle, char * strtok, to je funkcija Definicija za tu funkciju sadržavao u string, h knjižnici. Ako ste dali doprinos char * niz, što je samo niz, ili stalna char * deliminator, razdvojnik za kratke, Sve što radi je razbijanje veći string u nizu što mi zovemo tokeni odvojene određene vrijednosti. Dakle, u smislu, ako su dati što section.7.php, to je niz. Dakle, to bi bilo da sam proći u ovom, kao moj str, moj char * str, ako je moj deliminator je točka, sve to će učiniti je potraga kroz niz. I prvi put vidi točku, to bi samo povratak na pokazivač na posljednji znak pronađena u nizu prije toga. Dakle, to će ići ovdje. I to samo će mi dati 7.php. I ako bih nazvati funkcionirati još jednom, to bi mi samo .php. I tako je ova funkcija radi se razbije veći niz na manje žice ovisno na ono što tražite. I tako, na primjer, u vaš izgled do funkcija Ako želite pogledati što neki likovi doći ili ako točkice dogoditi ili proširenja dogoditi, ova funkcija će biti prilično korisno. Da. Bez brige. To će sve be-- da, što se događa? PUBLIKA: Tako je u prvoj liniji, ako smo koristili ovaj primjer, što bismo umetnuti u to? ANDI PENG: Da. Vi bi samo nazvati strtok niz zarez razdvojnik. I string jednak section.7.php. I onda si razdvojnik može biti jednako samo točke. PUBLIKA: U redu. ANDI PENG: Da. Samo tako. Sve ove funkcije su prilično slično kad smo proći kroz njih. Oni jednostavno učiniti nešto različite stvari. No, svi oni su idući u učiniti vaš život mnogo lakše. Druga funkcija, ovo je kao super, super, super važno, je the-- držite se. Ups. Strchr pretraga za prvi occurrence-- zapravo, da. Strchr je funkcija koja Ja definitivno samo otišao. Tako ignorirati ono što sam rekao prvi funkciju. To zapravo se zove strchr. Pa što bi se dogodilo ovdje ako što su dobili niz u char c, to bi samo dati što god to bilo. Da. Dakle, mislim da je to str, koji je niz i Chr kao char. Dakle, sve što pokušavate učiniti je potraga za kada je char unutar niza. I tako se traga za prvi Pojava lika c u string str. PUBLIKA: [nečujan]. ANDI PENG: Yup. A onda, ako nisu pronašli da, to će se vratiti NULL. Dakle, nešto što će biti vrlo korisno za vas dečki u događaj pset ako je, kažu, što su u potrazi za Proširenje kao .docx riječi Dokument ili .pdf za PDF dokument, možete vrsta ga koristiti za gledati za sve što je nakon toga svaki put kad vidim točku, zar ne? I tako prilično mnogo, ako vas izvoditi da po funkciji, ako se vraća NULL, onda znate da je to nije to pronaći točka, što znači da ovaj očito nije valjana ekstenzija datoteke. Ili ako se vrati nešto, onda znate to će se vratiti što god zapravo nakon produžetka. Dakle, oni od vas koji su imali počeo gleda kroz lookup i analizirati, ova funkcija je će biti super korisna. Tako smo zapravo događa demonstrirati pomoću ovoga. Zašto ne vi pokušajte pisanju Funkcija bool rečenica char * s koje Samo Vraća TRUE ako je je Kazna i lažno drugačije. Dakle naslutiti, ti ćeš se vjerojatno koristiti strchr. Ili ste samo traži u niz za određeni karakter. I tako u rečenici, što razdvaja rečenicu od ne-rečenice, što specifičnost? PUBLIKA: Prostor. ANDI PENG: Prostor, zar ne? I tako ono što mi vjerojatno neće želite učiniti u ovoj funkciji ovdje? PUBLIKA: [nečujan]. ANDI PENG: Idemo želite strchr niz za izgled prostora. Jer ako se vrati nešto, a zatim znamo da to mora biti kazna. To znači da moramo ima prostora u ovom nizu. Ako nema prostora, onda znamo da, hej, valjda to nije niz. To je vjerojatno samo jako dugo riječ. Dakle, ja ću vam dati dečki par minuta napisati ovu funkciju. Da. PUBLIKA: Jeste li dobili ovaj niz od korisnika? ANDI PENG: Da. Dakle, ovo je samo funkcija. Pa zamislite unutar vašeg glavna funkcija već have-- idemo ovdje. U REDU. Zato sam napisao ovaj program gdje Imam glavnu funkciju gdje Upravo sam stvorio dvije žice. Prvi je Bok, moje ime je Andi-- jasno, rečenica. Moj drugi je samo Andi, očito ne osuditi. I tako sam trčanje i onih žice kroz tu funkciju. Želim ti dečki pisati hladno rečenicu. A ja spremanje te vrijednosti, a onda ih samo ispis. Dakle, mislim da je korisnik će proći u nizu. A onda idete na osnovi shvatiti ako je to kazna ili ne i vratiti true ili false u skladu s tim. Ako vi želite dati palac gore ili heads up, glavu klimanje, je li netko spreman za početak to, to bi bilo dobro. Više možda kao 30 sekundi? U redu. Idemo vidjeti ako možete isprobati pisanje ovu funkciju. Dakle pseudo coding-- Samo ću se vrsta hoda sada kroz to pravo. Prilično puno, znamo funkcija koja trebamo iskoristiti. Ćemo nazvati tu funkciju na naš string i potraga za prostorom. Ako se vrati nešto, onda moramo znam da, jasno, ovo je rečenica. Budući da je prostor. Onda ćemo se vratiti istinito. Inače, idemo se vratiti false. Se bilo tko želite dati ja prva linija koda da smo zapravo događa koristiti napisati to? To je zapravo najteže linija koda, kao dobro. Da. PUBLIKA: Ako strtok S- ANDI PENG: Samo strchr. PUBLIKA: [ubacivanjem GLAS] prostor nije jednak nuli. ANDI PENG: cool. Točno u pravu. Svatko razumije da je prvi redak? Ćemo nazvati strstr, što je funkcija koja traži string a za char prostora. A ako ga nađe, to će vratiti pokazivač na mjesto gdje je to. Ako ga ne pronađete, to će se vratiti NULL. Dakle, ako se ne vrati ništa drugo nego NULL, onda znamo da je pronašao mjesto. Ima li to smisla? Cool. U redu. Dakle, ako znamo da je pronašao prostor, što želimo učiniti? PUBLIKA: Povratak istina. ANDI PENG: Yup. Povratak istina. A onda, netko želi završiti funkciju za mene? Da. Inače, baš kao što je to. I pokušati sastavljanju to. Da. Dakle, kao što vi možete vidjeti iz izlazi, zapamtite logičke izraze u C uvijek izražena u binarnom. 1 je istina. 0 je lažna. Ako smo pokrenuti ovaj Funkcija na žici jednom, što je Bok, moje ime je Andi-- Očito je sentence-- rezultat ispisati na 1 što je istina. Drugi, koji je samo riječ, rezultat ispisati 0, što je netočno. Svatko jasno vrsta o tome ova funkcija je napisano? Da. PUBLIKA: Možemo također učiniti, umjesto ne Jednak broj, jednak jednak 0, tako da je jednaka? ANDI PENG: Ne Zbog strchr je funkcija. Idem natrag na to. Zato što je tip povratak naše strchr funkcije? PUBLIKA: Oh, u redu. Ili NULL. ANDI PENG: Da. To je char * da mi kaže da što god ova funkcija će se vratiti, to će biti pokazivač. Ili pokazivač će biti pokazujući gdje je to pronašao, ili će se vratiti pointer na NULL. U bilo kojim okolnostima, to se događa da se vrati pokazivač na nešto. I tako, ako ste bili na ravnati to je jednako, jednako, 0, ti si idući u dobiti greška kompajliranje. Budući da će se vratiti pokazivač. I ti si idući u pokušati usporedite pokazivač na cijeli broj. I računalo ne neće svidjeti. Da, točno. Cool. Svatko dobro? I drugo, da ćemo ići više funkcija zove strstr. Bez brige, ako to Funkcije su vas zbunjuju. Oni me zbunjuje. Kao takav, ti dečki mogli vidjeti, svi oni zvuče prilično mnogo isto. Samo kad god ste zbunjeni, podići string.h knjižnicu. I vi možete sortirati kroz koji je koji. Dakle strstr, sve što se je pretraga niz za cijeli drugi niz. Pa gdje strchr samo pretraga za jedan znak, strstr pretraga za cijeli niz. Zato sam htio pogledati u, ja ne Znaš, Bok, moje ime je Andi. A ime moj najbolji prijatelj je također Andi. Ako sam htio tražiti u to Kazna za cijelu riječ Andi, moja igla bi bio bez obzira što tražite. A tvoj plast je god ste u potrazi za njim u. Dakle, ako ste u potrazi za određene riječi u rečenici, ta riječ će biti vaš igle. A onda sam kaznu će biti tvoj plast. I tako to samo traži prvi događaj od niza igle u string plastu sijena. Ona vraća pokazivač do prve pojave. Osim, sjetite u ovom slučaju, to je prva pojava niza cijelog da ste u potrazi za, a ne samo karakter. I tako to je gotovo Ista stvar kao funkciju smo upravo učinio, samo s malo više specifičnost. Budući da ste u potrazi za više od samo jednog znaka. A običaj je isti kao onaj koji smo upravo učinio. Svatko u redu s tim? U REDU. Prošle jedan ćemo ići više je strrchr, što nije zbunjen sa strstr ili strchr. strrchr ima dodatni r tamo. Budite oprezni kada pišete. Vi svibanj pronaći sebe uključujući dodatni r ili ne uključujući r, a zatim vaš funkcija je dobio ne ide na posao. I vi ćete biti zbunjeni. Budite oprezni da ste pravopis Sve ove funkcije u pravu. Dakle strrchr je točan Ista stvar kao strchr osim što traži nije prvi pojava specifičnog karaktera, nego posljednja pojava. I tako, u tom smislu, to je gotovo isti. No, umjesto da se kreće proslijediti u nizu, ti si idući u biti se kreće unatrag u nizu. Točno istu stvar, ti si jednostavno traži u drugačijem poretku. I tako to može biti super, super korisno za svoj pretraživanja funkcija, prvi funkciju na svom pset. Idemo se pretvarati da smo trebali napisati funkcija praznog produžetak u kojem smo proći stalna char ime * datoteke, samo niz, naziv datoteke, koji se u to ime i grafika iz produžetku te datoteke. Tako na primjer, ako su sam prolaze u nizu pset7.zip, to će ispisati samo proširenje, što je .zip. I to će raditi za bilo kakav produžetak, .docx za Word ili .pdf za PDF datoteku ili .html za HTML datoteku. Prilično mnogo, napisati funkcija koja se može učiniti. Ja sam zapravo ide prijeći na IDE. Nije load-- tamo idemo. Dakle, sve što sam učinio ovdje stvorio char *, prvi string, zove pset7.zip. Idem za uvećanje. Napravio sam jedan drugi niz zove finalpaper.docx. I napišite mi funkciju da kad zove se ide samo ispisati naziv datoteke ekstenzije. Možda potrajati nekoliko minuta razmišljati o tome kako ćeš to učiniti. Nešto više izazovan osim zadnje, ali običaj je gotovo isti. Da. Tako napisati funkciju pod nazivom proširenje da, ako sam vam dati ime datoteke, kad bih vam dati pset7.zip-- I Želite li ispisati iz samo .zip. Ako dajem vam se sviđa finalpaper.docx, samo ispisati .docx, samo proširenje bilo datoteke. To je zapravo samo traje dvije linije koda. Na taj način pokušati vidjeti ako Možda to može učiniti u to. Zapravo, to je samo traje jednu liniju koda. No, dvije linije je vjerojatno standard. Što je funkcija smo vjerojatno idući u ištanje to nazvati? PUBLIKA: strrchr. ANDI PENG: strrchr, zar ne. Zato tražimo s desne lijevo. Nisam ti dečki primjer ovako, ali ako sam ti dao primjer kao www.apple.com i samo sam htjela com, to bi bio primjer u kojem želite nazvati posljednje instance razdoblja, a ne prvi, zar ne? Ako ste bili poziva strchr ga, bi sam vam dao apple.com. Ako ste pozvani strrchr ga, bi ti dao Com. I stoga budite oprezni na kojima svatko od u mom primjeru, vjerojatno mogla bi mogao imati samo ga napisao pomoću strchr, jer postoji samo jedna točka. Ali u drugim slučajevima, to ne može biti slučaj. I tako uvijek pokušati dizajn Vaš broj dobro, tako that-- da? PUBLIKA: Pa u Primjer si upravo rekao, kad ne strrchr to bi dati .com ili samo doći? ANDI PENG: To bi vam dati Com. PUBLIKA: U redu. ANDI PENG: Da. To ukazuje na kojoj se našao. Da. 30 sekundi možda? Da. Svatko dobro ili možda malo više vremena? Pokaži ruku? Pokaži glava? Cool. Svatko želi mi dati prvi linija koda za ovaj program? PUBLIKA: [nečujan]. ANDI PENG: Pa, prije svega, neka je možda razbiti ovaj dolje. Dakle, što je vrsta strrchr povratak? Vratimo. strrchr, što je vrsta povratak? PUBLIKA: Char * ANDI PENG: To je char *, zar ne? Što znači da ste vjerojatno idući da žele stvoriti još jedan char * s vrstom od trgovine, kad god je to povratka, zar ne? Jer ako nazovete funkcija strrchr, to će vam dati pokazivač gdje god je utvrdio da je zadnji rok, pravo? Ali ti si idući u ištanje to pohraniti tu negdje, zar ne? I tako, kako ćemo kodirati to u našem programu? PUBLIKA: Možete napraviti ugljenizirani * [nečujan]. ANDI PENG: Aha. PUBLIKA: [nečujan]. ANDI PENG: strrchr. Da. Oh, propustili r tamo. PUBLIKA: Naziv datoteke [nečujan]. Što je? Oh, to je samo s. ANDI PENG: Oh, to je samo s. Yup, sorry. Moja greška. Primjeri ne odgovara. PUBLIKA: A onda dot. ANDI PENG: Yup. Budite oprezni kada dečki are-- ovdje, neka mi zumirati. Idemo tamo. Budite oprezni kada dečki pišu, posebno kada radite samo char. To je stvarno lako slučajno baš napraviti dvostruke navodnike umjesto jednog. To neće raditi. Vaš prevodilac će se žaliti. A tvoj je funkcija jednostavno ne ide na trčanje. I stoga budite oprezni kada radite stvari s znakova da je jednostruke navodnike. I tako se tu liniju broj smisla svima? Mi smo stvaranje char * pokazivač. Zbog strrchr vraća nešto tipa pokazivača. I tako ćemo nazvati strchr na s, što je string, datoteka ime, da smo u prolazu. I mi smo u potrazi za posljednji instanca razdoblju, što je samo jednom citat dot jedan citat. Da. PUBLIKA: Kad ćemo koristiti dvostruke navodnike a kad mi Koristite jednostruke navodnike? ANDI PENG: Da. Dakle, dvostruki navodnici su Uvijek koristi kada vas imaju niz od više od samo jedan. Dakle, ako radite strstr, što je onaj koji vam Pretražite string za žici, će proći u dvostrukim navodnicima. Ali svaki put je to samo jedan lik, želite učiniti jednostruke navodnike. To je dobra stvar za imati na umu. Tako da sada imamo naš pokazivač, što ćemo učiniti s njim? Pitam vas dečki ga ispišete, zar ne? Dakle, [nečujan], želite daj mi liniju koda? PUBLIKA: printf-- ANDI PENG: Da. PUBLIKA: --you treba držač mjesta. ANDI PENG: Yup. PUBLIKA: Ispis držač mjesto. Ne znam što to mjesto Nositelj je samo točka na njega. U REDU. Idemo preskočiti da je za sada onda. PUBLIKA: A onda comma-- ANDI PENG: Pointer, zar ne? PUBLIKA: Pointer, yup. ANDI PENG: Pa vrsta trik pitanje, ima veze s pokazivača i gudače da smo vrsta govorio o već. Kakav nositelja mjesto i mi potrebno za pokazivač za char *? PUBLIKA: [nečujan]. ANDI PENG: Da. To je lakše nego što vi mislite da je. PUBLIKA: Gudački? ANDI PENG: To je samo niz, točno. Zato zapamtite žice stvarno ne postoje. Char * je točno Ista stvar kao string. I tako zapravo to je ono s trebali su korišteni svi zajedno. U REDU. Da vidimo možemo li probati trčanje ovo. Idemo napraviti make proširenje. Cool. Vi vidite kako sam prošao u psset7.zip i finalpaper.docx, i to samo ispisuje .zip i .docx? Ima smisla? OK Dakle, mislim da je u vašem Potraži Funkcija u vašem pset koji ste će se tražiti ako je string ima određeni kraj, morate dati određenu šifru pogreške. I tako će to biti prilično strašno. Jer ako možete shvatiti što je proširenje, onda možete usporediti Proširenje vidjeti ako to odgovara gore s određenim nastavkom. I onda se vratiti poruka o pogrešci, zar ne? Da. PUBLIKA: Dakle, mi ne morati dodati 1 ili ništa? Pokazivač će ići na the-- ANDI PENG: Ne. PUBLIKA: --point nakon njega. ANDI PENG: Da. To ukazuje točno gdje je pojava bila. Tako na primjer ovdje, mi smo u potrazi za razdoblje. Tako da će se vratiti pokazivač na razdoblje. A onda će ispisati iz početkom u tom razdoblju. Dakle, ne morate dodati 1. Iako, to je sasvim u redu da se, ako je ste ikad kolebljiv, na samo vrsta ga isprobati sami. Izgradite program uzorak. Testirajte ga iz sebe i vidjeti gdje je tisak. To je također nije loš način da to učinite. Cool. I to je uglavnom sve Imao sam za vas momci danas. Napravili smo puno pset stvari danas. Pa kad ste u nedoumici, kao što su Rekao sam, uvijek gledati string.h knjižnica za ovaj pset. Tu će biti puno Funkcija tamo koji bi mogli biti korisni. Neki ne mogu biti korisni. Ja stvarno ne znam. Wade kroz njega, tu je cijela hrpa njih. strstr, strchr, strrchr su super, super korisno, kao i su strcpys i strcasecmps koje smo već koristili. To je samo puno messing oko s žice, utvrđivanje jesu li jednaki, uzimajući stvari iz žice i bude u mogućnosti otvoriti datoteke ispravno. To je puno file I / O. pset stvarno nije loše. Ti si idući u uzeti pogledajte ga, skinite ga, i vidjeti hrpu koda. Bez brige, koje su vam broj zapravo pisati nije loše uopće. Ako netko ima problema sa svojim poslužitelja, dođite me vidjeti nakon dijelu. Ispričajte jednom za ne donosi slatkiše za Noć vještica. Ne znam što nije u redu sa mnom. Ali imat ćemo duplo CANDY sljedeći put. I sretno u vašem pset ovaj tjedan. Da.