ANDI PENG: Mēs esam gandrīz cauri visiem psets. Patiesībā, mēs esam ar balsu vairākumu no visgrūtākajiem psets. Tātad mēs esam faktiski tikai gatavojas veida brīze caur nākamo pāris nedēļu laikā. Mēs ejam, lai sāktu runāt par mūsu galīgie projekti, notikumi nāk uz augšu tuvākajās nedēļās. Un dzīve būs brīze. Tik ne pārāk daudz šodien. Cerams, būs faktiski brīze izmantojot darba kārtībā šodien, un tad no šejienes ar kādu laiku, lai rezerves. Arī es vēlos atvainoties par konfektes trūkumu šodien. Es nezinu, kāpēc. Bet nedēļas noved līdz Halovīni, es varētu aizmirst konfektes. Tāpēc es esmu faktiski tikai plašs vilšanās ar jums tiesības tagad. Tāpēc, ka es burtiski atceros konfektes par katru klasi, bet Halloween. Bet nākamnedēļ, es dos dubultot summu konfektes lai aizvietotu, ka viss jums. Tas būs lieliski. Tāpēc man ir pāris paziņojumiem par kādu grafiku. Man ir daži plānošanas jautājumiem. Tad mēs ejam, lai pārietu uz runāt par to, ko sauc chmod. Mēs ejam, lai runātu par ātri TCP / IP HTTP. Un tad mēs ejam uz kodu mūsu pašu mājas lapā, izmantojot HTML un CSS. Un tad es faktiski atstāj varbūt piemēram, 20 minūtes, lai runātu par pset6. Jo pset6 ir tiešām daudz sīkumi, ka mēs jau esam redzējuši iepriekš, bet es gribēju, lai atsvaidzinātu daži no šiem jēdzieniem kā arī iemācīt pāris jaunas funkcijas. Cool. Tātad pirmkārt, welcome atpakaļ no brīvdienām. Es ceru, ka jūs esat pārtraukums bija patīkams. Vai jūs darījāt, lai pārtraukumā? Mērķauditorija: devās uz Ņujorku. ANDI PENG: Jūs devās uz Ņujorku? Es domāju, ka puse mūsu skolā devās uz Ņujorku. Viss ir kārtībā. Es pavadīju lielāko daļu manu pārtraukuma sēdošs gultā Netflixing. Un tas bija labs laiks. Bet mēs esam tagad atpakaļ, atpakaļ sesija, atpakaļ swing lietas. Mums ir PSET pienācīgu šo piektdien plkst. Es domāju, ka jūs esat jau paņēma savu viktorīnu, jā? Tātad, kāds cits, kas ir nav bijis savas viktorīnas, lūdzu, nākt un saņemt savu viktorīnas no man beigās sekcijas. Vai izsekot mani pilsētiņā. Es ņemšu to ar mani kaut kur. Mūsu galīgais projekts pirms priekšlikumu arī. Tātad tiem no mums, kas nekad nav veikusi šī klase iepriekš, Capstone no CS50 ir ļoti daudz kulminācija šajā grand projekts ka studenti ierosināt. Un pirms priekšlikumu, tikai vispārēju priekšstatu par to, ko varētu vēlēties darīt to Projekts, ka ideja ir saistīts Pirmdiena, nākamo pirmdien plkst. Tātad diezgan daudz, David es domāju, ka būs runāt vairāk par šo lekciju ja viņš jau nav. Un tur ir ciets lapa mūsu mājas lapā, paskaidrojot visi projekta prasībām. Bet būtībā, pick jebkuru tēmu, kas jūs esat ir interesējusi visu savu laiku šeit pie CS, vai tas ir spēļu vai konstrukcija vai video vai neko. Un jūs varat patiešām veida tagad piemēro dažas nodarbības ka mēs esam iemācījušies šeit CS50-- hi, welcome-- diezgan daudz veikšanu galīgais projekts, pēc jūsu izvēles. Viss, kas ir saistīts pirmdiena ir tikai īss izdevniecības reklāma pa e-pastu man, ātri teikums, piemēram, hey, Andi, Es esmu patiesi interesē projektēšana spēle, kas tas par iOS. Cool. Vienkārši ļaujiet man savu īsu iniciāli idejas jūsu gala projektiem. Un mēs runājam ar vai bez tas ir tiešām laba ideja, vai ne, ja tas ir iespējams ideja, vai ne. Bet tikai iepriekš priekšlikums ir jāmaksā nākamajā pirmdienā. pset6, mūsu jauki web-- tas ir nepareizi. Pset7? pset6? Tas ir pset6, vai ne? pset6, mūsu web serveri, ir jāmaksā Piektdien pusdienlaikā ar vēlu dienā. Darba laiks atsākt normāli no pirmdienas līdz ceturtdienai 8:00 līdz 11:00 šonedēļ. Es domāju, ka Commons par nākamie trīs naktis. Cool. Pirms mums bija par materiālu, vai kāds ir kādi jautājumi, joki, stāsti? Ko jūs darīt, lai rudens pārtraukums? Mērķauditorija: Ko man darīt? ANDI PENG: Jau tas ir vecums pirms faktiski. Christabel devās uz Ņujorku. Es paliku šeit un Netflixed. Mērķauditorija: Ak, jā es biju šeit. ANDI PENG: Ak, OK. Mērķauditorija: Es neatceros ko konkrēti. ANDI PENG: Tas ir OK. Mērķauditorija: Netflixing iespējams. ANDI PENG: Netflixing. Jā, tas ir labs laiks. LABI. Viss kārtībā. Visus jautājumus, pirms mēs lēkt materiāls? Arī mēs ejam, lai mēģinātu paātrināt caur šodien sadaļa, ne pārāk daudz, lai segtu izdevumus. Un, cerams, mēs nokļūt šeit mazliet agri. Sorry par ne konfektes, arī. Es esmu īsts jo īpaši laikā Halloween. Viss kārtībā. Cool. Tāpēc mēs esam gatavojas sākt runāt par komandrindas arguments sauc chmod. chmod, viss tas ir ir tikai Unix sistēma zvanu veikts no komandrindas lai mainītu faila atļaujas. Tā, piemēram, mēs esam viss radās lapu piemēram, tas, iespējams, dažkārt mūsu mūžu būt interneta Lietotājs, kur mūsu tīmekļa serveris ir devis mums kļūdu aizliegta. Jums nav atļaujas piekļūt, yadda, yadda, yadda, uz šī servera. Viss, kas patiesībā nozīmē ir tas, ka atļaujas kas tika pievienots kāds Lapa, ko Jūs mēģināt piekļūt nebija atvērtas jums. Tātad diezgan daudz, chmod ir veids, kādā mēs varam mainīt šīs sistēmas atļaujas dot ikvienam, lietotājs, grupas, vai pasaules, vai jebkurš kombinācija no šiem piekļuves noteiktām failiem, katalogi, kaut kas tiešām, jebkāda veida sistēmā operētājsistēma. Tātad, ja kāds no puišiem ir Datori Ja jums liekas, tāpat pēc kopā ar mani šodien, pilnīgi justies brīvi, lai vienkārši ierakstiet lietas in. Ja ne, jūs varat vienkārši žaut. Tāpēc es esmu gatavojas faktiski pull manu termināļa tieši tagad. Tātad komandu palaist chmod, vai vismaz tikko uzskaitīt atļaujas jūsu failu direktoriju, ir tikai ls-l. Kā jūs varat redzēt, ķekars sīkumi izlec no kuriem lielākā daļa Ir svarīgi, lai mums par Kreisajā pusē šeit. Jūs guys redzēt ķekars rs, WS, 1 /. Jā. Tie būtībā ir tikai visi failu atļaujas paskaidrot, ko atsevišķas katalogi un failus jūsu sistēmā. So iesim atpakaļ strāvas punkts šeit. Tātad papildus failu nosaukumiem kā jūs guys var redzēt labajā pusē, mēs meklējam, lai redzētu pēc būtības tikai kolonna pa kreisi. Tā papildus tikko failu nosaukumi, mēs var redzēt atļaujas failus, to īpašnieks grupa, grupas nosaukums, datums ka fails pēdējo reizi modificēta, un tā tālāk. Jūs varat redzēt daudz lietas, izmantojot chmod. Tātad tā, ka mēs lasām chmod ir tas, ka pirmais burts mēs diezgan daudz ignorēt ziņā lasīšanas atļaujas. Pirmais burts tikai stāsta mums, ko veida sistēma mēs piekļūt. d, šajā gadījumā, ir mapi vai direktoriju. Tātad mēs zinām, kas šobrīd manu darbvietas septiņi sadaļa bija direktoriju. Un tad jūs redzēsiet trīs triādes, būtībā tikai trīs komplekti trīs burtiem. Un jūs varat iedomāties katrs kā mazliet. Tātad jums vienkārši ir trīs komplekti trīs biti, deviņi bits kopumā. Jūs ārstēt tos grupās pa trīs. Tātad pirmā grupa no trim ir Vienmēr jūsu lietotāja atļaujas. Jūsu otrās grupas trīs ir Vienmēr jūsu grupa atļaujas. Un jūsu trešais noteikti trīs vienmēr ir kā pasaule, tad visur atļaujas. Tāpēc es domāju viegli jautājums, kas jāuzdod, ir, kas ir starpība starp lietotāju un grupu. Galvenā atšķirība starp lietotāju un grupu ir tā, ka lietotājs ir tikai jums personīgi piekļuvei kāds tas ir šobrīd. Grupa var būt, ja jums ir vairāki lietotāji uz viena datora, piemēram. Visi no tiem var uzskatīt par grupu. Un tad pasaule ir tikai pasaulē, ikvienam. Tātad, mēs varam redzēt, vēlāk par to, kā mēs varam modificēt tos uz dažādām atļaujām. Tātad diezgan daudz, mēs esam gatavojas vēl koncentrēties par daļu pa kreisi, kur direktoriju CS50 mēs redzam drwx, kur r tikai nozīmē, ka tas ir lasāms. W vienkārši nozīmē, ka tas ir rakstāms. Un tad x tikko nozīmē, ka tas ir izpildāms. Jūs domājat, ka tas veids no nav jēgas. Tas būtu e. Bet x patiesībā veida darbojas nedaudz labāk, jo jūs varat atcerēties to labāk. Tātad trīs veidu lietas, jums var darīt, jūs varat vai nu lasīt failu, Jums var būt atļauja uzrakstīt failu, vai jūs varētu būt atļauja izpildīt failu. Un tā tā, ka mēs faktiski pārstāv tās bitos ir skaitļi 4, 2, un 1. Tātad viss, kas ir lasāma ir pārstāv skaitu 4. Jebkas, kas ir rakstāms pārstāv 2. Un viss, kas ir izpildāmā kā pārstāv 1. Tātad šajā ziņā mēs varam arī pārstāvēt šos numbers-- hi, laipni, savādāk. Piedodiet. Pirms visiem, es esmu gatavojas atvainoties vārdā ikvienam ienāk klasē tagad. Es aizmirsu konfektes šodien. Piedod es esmu neveiksme Šonedēļ par Halloween. Es dos divkāršu apmēru candy nākamajā reizē, lai aizvietotu to. Bet anyways, sorry par ka puiši, sorry. Tātad tā, ka mēs varam faktiski ievade mūsu komandas arguments ir, mēs var darīt chmod grupa Slash atļaujas, ja grupa ir tikai jebko, grupa mēs cenšamies mainīt. Un atļaujas ir kāds mēs vēlamies pievienot to. Tā, piemēram, plus piebilst atļaujas, un atņemt atņem atļaujas. Un veidi grupā mums ir A visiem, u lietotājiem, g grupām, vai o citiem. Tas ir mazliet abstrakts tieši tagad. Bet mēs iesim pa pāris piemērus tikai, lai pierādītu šo nekustamo ātri. Ikvienam labi uz šo slide, lai es varētu doties tālāk? Cool. Tā, piemēram, rwx. Pirms mēs runājam par to, ko tā pārstāv, Vispirms Kāda rwx nozīmē? Ja redzat, ka šis pārliecināts fails ir atļaujas rwx, ko tas nozīmē, ka persona spētu darīt? Mērķauditorija: lasīt, rakstīt un izpildīt. ANDI PENG: Jā, tieši tā. Jūs varat lasīt rakstīt un izpildīt. Tāpēc, ka visiem trim no tiem rakstzīmes ir klāt. Tātad, ja mēs ejam uz priekšu un runāt par šī ziņā biti, rwx var arī pārstāvēja 700. Jo, kā jūs varat redzēt jebkurā veida failu direktoriju atļaujas, tur ir trīs triādes. Šajā gadījumā, tikai pirmais triāde ir kaut tur. Tātad, šajā gadījumā, tad r ir 4, w ir 2, un x ir 1. Ja jūs pievienot tos kopā, tas ir 7. Un tāpēc, ja jūs pārvērst tas ko veido, tas ir 700. Jo 7 ir pirmais triāde. 0, tur nekas klāt otrajā triāde. Un tad tur nekas klāt trešais triāde, tā ka ir no otra ir 0. Tātad tādā pašā nozīmē, ķekars triādes var pārstāvēt tikai bitos, tikko binārā kā arī. Tātad 700 ir tieši tas pats, kā rwx ------ ziņā atļaujas. Ikvienam skaidrs, ka? Cool. Un tā chmod 111 dotu kas atļaujas uz failu? Dod jums puiši pāris sekundes, lai pārvērstu šo. Atcerieties, pirmais triāde ir lietotājam. Otrais triāde ir grupai. Un trešais triāde ir ikvienam. Un tā chmod 111 dotu kas par atļaujām un kam tipa? Paņem pāris sekundes domāt par to un atgriezties. Jā. Mērķauditorija: Tātad visi var izpildīt. ANDI PENG: Yup, tieši tā. Mērķauditorija: Bet neviens nevar lasīt vai rakstīt. ANDI PENG: Un nekautrējieties izskaidrot ikvienam kā jūs nonāca pie šāda secinājuma. Mērķauditorija: Nu, lai lietotājs, grupa, un pasaule, tas viss ir 1, kas ir kodu izpildāmo. ANDI PENG: Jā, tieši tā. Tātad 1, šajā gadījumā, viss, ko mēs zinām, ir ka tas ir izpildāmā koda. Tāpēc, ka lasīšana ir 4. Rakstīšana ir 2. Un izpildāmā ir 1. Tātad ir visi trīs triādes ir 1, kas nozīmē, ka uz pasaules, lai lietotājam, un grupai, tie visi ir izpildāms. Ikviens labi ar to? LABI. Un tāpēc otrais veids ka mēs varam faktiski rakstīt tas arī ir jums varētu tikai darīt chmod plus x. līdzekli visu vai ikvienam. Plus nozīmē dot atļaujas. Un tad x ir izpildāmā. Tātad tur ir divas komandas ir faktiski identiskas. Tātad, ja jūs vēlaties, lai palaistu Tas savā terminālī, jums chmod 111, nosaukumu Jūsu direktoriju vai failu. Vai arī jūs varat darīt chmod plus x, nosaukt savu direktoriju failu. Tas pats, tikai vieglāk veids, varbūt, daži pārstāvēt vai maiņa faila atļaujas. Ik viens OK ar chmod Pirms mēs virzāmies tālāk? Cool. Tāpēc tagad mēs ejam uz galvas par a daži slaidi ar ļoti abstraktu jēdzienu ka es esmu diezgan daudz gatavojas brīze cauri. Un tas ir pilnīgi OK, ja jums nesaprotu viss. Pat tagad, es joprojām nav īsti izprast visu pilnībā. Bet tas ir vairāk, kā iegūt augstākā līmeņa izpratne par to, kā dažas no šīm lietām strādā. Tātad mēs ejam, lai runātu ātri par TCP / IP, kas ir tikai Transmission Control Protokols slash interneta protokolu. Atsaukt no lekciju, David, viņš māca tevi piemērs, kur viņš gribētu iet piezīmes aploksnē līdz patīk augšpusē lekciju zālē? Tātad likums skolas zālē David pierādīja būtībā kā TCP / IP darbi sajūta, ka visi to ir, ir līdzeklis, lai nodrošinātu, ka dati ir piegādāta pāri serveri vai internetā. Tātad piemēru aploksnes un ziņojums, lietotājs beigās varēja redzēt, ka, ak, man vajadzēja saņemt četras paciņas informāciju. Bet es tiešām saņēmis tikai trīs. Tas nozīmē, ka man ir pazudis viens. Un viens netika piegādāts. Un tā TCP / IP internetā, izmantojot datoru un serveri, dara tieši to pašu. Viss tas ir norādiet struktūra, kurā zaudēta dati paketes var apvainoties un saņemti. Tāpat internetā, kad jūs cenšaties piekļūt failus tiešsaistē vai sūtīt failus savam draugam vai apskatīt internetā pārlūkos tūkstošiem miljardu un miljardiem baitu informāciju tiek pārsūtīti milisekundē. Un tas ir ļoti, ļoti mulsinoši. Un tas ir tiešām grūti tiešām zina, kas ir nosūtīts un kas nav nosūtīts. Un tā TCP / IP tieši precizēts vienots regulējums kurā jūsu mājas pārlūkprogrammu un jūsu servera var veida sazināties ar otru, tikai pārliecinieties, ka paketes ir visi šeit un nekas zaudēto un visi dati, kas jums pieprasītie faktiski parādīti pareizi. Ikvienam OK tikai, ka ļoti īss augsta līmeņa saprast? Cool. Tātad, tad mēs ejam, lai pārvietotos uz runājam par HTTP, kas ir tikai Hiperteksta pārsūtīšanas protokols. HTTP, viss tas ir, ir kāds jebkura lapa vai fails ir piekļūt jūsu mājas lapā, serveris atgriež HTTP statusa kods atbildot uz pieprasījumu, nodrošinot, ka nu, ak, šis pieprasījums pārdzīvoja. Un viss ir parādīti pareizi. Vai, ak, nē, 404. Kaut kas nogāja greizi. Ak, es nevaru parādīt. Viss, kas ir tas, ka neatkarīgi no jūs mēģināt piekļūt, izmantot kā lietotājs mēģina piekļūt, par internet-- tikai pārliecinoties ka jums ir vai nu veiksmīgi piekļūt neatkarīgi no tā bija, vai ne veiksmīgi apskatīta kāda tā bija. Un tā HTTP statuss kods tikai sniedz jums līdzeklis, to var zināt, vai vai ne tas ir bijis veiksmīgs vai nav. Tā, piemēram, piemērs pieprasījums. Jūs varat redzēt šeit, tas ir parasti parasti četras līnijas. Mums ir GET HTTP 1.1, kas ir tikai metode pieprasījums URL, protokols versija, lauka nosaukums, un lauka vērtība. Tāpēc nav nepieciešams, lai pilnībā iegaumēt kaut ko šeit. Just veida iepazīstināt sevi ar to, kā tie izskatās. Šajā piemērā, metode pieprasījums URL ir tikai kāds pieprasījums sūtāt serveri. Tāpat, hey, serveris, es tiešām gribu Pieeja yadda, yadda, yadda, HTTP lapā. Protokols versija ir tikai jebko, versija jūsu mītnes vai jūsu serveris izmanto, lai piekļūtu informācijai. Lauks nosaukums ir tīmekļa vietne vai URL, ka jūs mēģināt piekļūt, Šajā gadījumā, www.apple.com. Un lauka vērtība ir tikai parasti nosaukt, vērtību. Un tā var būt jebkura veida kombinācijas no burtiem vai cipariem vai neatkarīgi. Tātad tipisks pieprasījums, tāpēc ko jūsu dators faktiski nosūta uz serveri, kas saka, hey, jūs zināt, kas man ir nepieciešams šis redzams, tas ir sava veida pieprasījuma ka viņi faktiski saņem. Piemērs atbilde tam, ko serveris sūtīs atpakaļ uz jums būtu diezgan daudz pats, izņemot ar statusa kodu augšpusē. Tātad, 200, 2 0 0 ir vienmēr statusa kods OK. Tāpat, OK, šis pieprasījums pārdzīvoja. Jums bija iespēja piekļūt viss pareizi. Dzīve ir laba. Dzīve ir labi. Viss ir pilnīgi labs. Un tā tas vienkārši stāsta savu pārlūkprogrammu un jūsu serveris, hey, viss ir labi. Man visu informāciju, man ir nepieciešams. Cool. Bet problēma ir tā, dažreiz problēmas nākt klajā kad jūs have-- pēdējo es domāju Es runāju par dublikātus. Jums ir mazāk labas atsauksmes. Tā, piemēram, 404 ir Page Not Found. Jums dažreiz ir braucamās piekļuvi. Jums ir dažādi citi statusa kodi, ka es esmu pārliecināts, ka jūs visi esat redzējuši, kad esat mēģina darīt pētījumus par internetā. Un jūsu pārlūkprogramma sniedz jums The, nē, nevar piekļūt. Un jūs, piemēram, labi, crap. Tik vienkārši diezgan daudz, tur ir daži diezgan biežas statusa kodi. Varbūt iepazīties ar kādi tie ir. Funniest viens, ka Es domāju, ka es esmu jebkad dzirdējis of-- ja tev gadās uzmeklēt visi no tiem online, kāda iemesla dēļ tur ir faktiski reāla statusa kods sauc 418 Es esmu tējkanna. Es googled kur izcelsme tas bija no. Un acīmredzot viens aprīļa joks " Day pāris gadu desmitus atpakaļ, kāds domāja, ka būtu jautrs lai izveidotu jaunu statusa kodu sauc 418 Es esmu tējkanna. Likumīgi, sauc šo kods sauc Es esmu tējkanna. Es aizmirst to, kas lapā jums ir iet uz faktiski padarītu šo displeju. Bet acīmredzot, jūs faktiski var iegūt statusa kodu es esmu tējkanna kaut darot kaut ko. Tātad tur ir simtiem un simtiem statusa kodu. Dažas no tām veikt vairāk izjūta nekā citi. Bet diezgan daudz tikai iepazīstināt sevi ar visbiežāk ones. Pieprasītais vienība ķermenis ir īss un resns, acīmredzot. Tāpēc reizēm ir vairāk biedējoši kļūdas nekā es esmu tējkanna. Bet tas ir viens, ka es domāju, jūs veida ceram, lai sasniegtu. Bet es nedomāju, ka jums būs. Ikvienam labi uz tikai statusu kodi, pieprasījumi, procesi, izgatavošana Noteikti informācija tiek piegādāts pareizi? Tāpēc tagad mēs esam gatavojas pārejai spēkā jautru daļas sadaļas šodien, kur mēs runājam mazliet par HTML. HTML, viss tas ir Hiperteksta Markup Language. Tas ir tikai standarta valoda Jūs izmantojat, lai izveidotu visiem interneta lapas internetā. Tātad jebkurā mājas lapā, kas ir jūsu mīļākie mājas lapa? Kāds ir jūsu mīļākais mājas lapa? Mērķauditorija: [nedzirdama]. ANDI PENG: Sorry? Mērķauditorija: Tumblr. ANDI PENG: Tumblr. Tātad Tumblr ir rakstīts HTML. Un tāpēc mēs faktiski iet cauri un spēlēt aptuveni ar kādu no šīm lietām vēlāk. Diezgan daudz viss jums jāmācās, lai zinātu, rakstīt HTML jūs varat droši tikai Google internetā. HTML, tas nav programma, piemēram, C kur jūs varat izveidot mainīgos un darīt labas lietas ar to. Tas ir vairāk tikai, ak, tas ir, kā es vēlas lietas parādās manā mājas lapā. Un es esmu tikai gatavojas nodot to. Un tas notiek, lai stils. Tātad HTML, savā ziņā, tas ir tāpat kā formatēšanas vai veidni valoda. Tas ir daudz vieglāk. Tas ir daudz vieglāk iemācīties, daudz vieglāk rakstīt nekā jūsu tipisks programmēšana valoda, ļoti viegli, ļoti lietotājam pieejamu un draudzīgu. Tātad mēs faktiski gatavojas spēlēt apkārt, rakstīt mūsu pašu lapas šodien. Bet, pirms mēs sākam, es tikai vēlos, lai iet pāri dažas īsas paraugpraksi. Jo HTML šāds ir viegli valoda un jo pat ja jūs darīt pāris lietas nepareizi, tas reizēm var nepamanīt, mēs vēlamies, lai pārliecinātos, ka mēs esam faktiski ievērojot mūsu labākās prakses lai pārliecinātos, ka lietas, kas varētu iet apkārt, bet ne vienmēr gatavojas ne iet labi pārliecinieties, ka viņi līdz minimumam. Tātad diezgan daudz, pārliecinieties Jūsu aizvērt visas atslēgvārdus kad jūs esat rakstiski HTML. Ja jūs atverot ķermenis, pārliecinieties, ka jūs esat slēdzot to ar ķermeni kaut kur. Jūs vēlaties pārliecināties, ka jūsu mājas lapa apstiprina, izmantojot ko sauc par W3 pārbaudītājs. Jūs varat vienkārši Google, ka online, un tur ir saite uz to. Un tad jūs vēlaties atsevišķs HTML, kas ir Jūsu iezīmēšanas valoda no jūsu stilu, kas ir CSS valoda, David pierādīja, ka mēs esam arī gatavojas spēlēt mazliet ar lekciju. Cool. Tātad jebkurā laikā jūs vēlaties, lai palaistu HTML uz CS50 ierīces, mēs ejam, lai palaistu programmu, ko sauc Apache, kas visiem tas ir tikai uzcelta web serveris, kas ikvienam CS50 ir pieeja. Mēs to saucam apache50 tikai tāpēc, ka mēs gribētu aicināt visu 50 CS50. Tātad tā, ka jūs sākat CS50 internetā serveris ir, ierakstot jūsu komandu line apache50 sākt dot. Un, ja jūs vēlaties, lai izbeigtu to jebkurā laiks, jums apache50 beidzas ne dot. Un jūs vienkārši hit Enter. Un tas būtu pozīcijā šeit drīz. Jā. Tāpēc es esmu tikai gatavojas ātri iet pa piemērs patiešām īsu mājas lapā. Un mēs esam gatavojas tērēt piemēram, 10, 15 minūtes spēlējot ap rakstot mūsu pašu mājas lapas. LABI. Tātad šeit IDE-- var ikviens redzēt, ka? Ne īsti. Lūk, es ņemšu tuvinātu. Esmu tikko saņēmu šo īso veidni šeit ar neko faktiski tajā. Mēs esam tikai gatavojas ātri uzrakstīt HTML programmā, kurā mēs vienkārši sasveicināties pasaulei. Tātad pats kā C, tagad mēs esam tikai gatavojas to darīt HTML. Vai kāds vēlas faktiski tikai mēģināt dod man pirmā lieta, jums būtu likt HTML dokumentā? Jā. Mērķauditorija: Iekavās, uz [nedzirdama]. ANDI PENG: Yep. Tātad kaut kas ir ļoti unikāla HTML, ka mēs parasti tradicionāli nav saskaras citās komandu line līmeņa programmēšanas valodas ir tas, ka mēs faktiski norādiet faila tipu ka tas būs augšpusē mūsu kodu. Tātad šajā instance-- es domāju tas ir īstais komandu, labi? Jā. Augšpusē, jūs vienkārši vēlaties, lai iekļautu sprādziena DOCTYPE html iekavās vienkārši lai pastāstītu savu datoru, hey, skaties. Un HTML dokuments nāk. Un tad kā mēs gribam lai sāktu savu failu? Ja mēs vienkārši vēlamies teikt hello, have a mājas lapa, kas saka hello uz pasaules, kā mēs iet par ēkas šo? Patiesībā, pieņemsim savukārt Google. Un mēs faktiski var darīt. Jā. Tur mēs ejam. Tātad HTML. Kā jūs varat redzēt, mans pārlūks ir faktiski automātiski stils tas par mani. Tas pats, C, kad jūs radīt atvērtu cirtaini lencēm, Jūsu pārlūkprogramma automātiski piebilst ciešā cirtaini lencēm. Par laimi, mūsu IDE mīl to izdarītu, mums kā labi. Tāpēc tagad mēs varam veida tips sākums tag, un tas notiek, lai vienmēr pastāstīt mums atcerēties tipa beigas tag. Es domāju, ka tas ir nepieciešams, lai kapitalizēt. Un tad mēs vēlamies, lai pievienotu, vienmēr, galva, kurā ir nosaukums. Mēs vienkārši vēlamies, lai varbūt zvanīt šis sveiki, un pēc tam ķermeņa. Un tur jums iet. Tas faktiski ir mūsu HTML dokuments. Tātad tā, ka jebkurš HTML dokuments vienmēr ir veidoti in-- pats ar int main tukšumu. Jūs vienmēr vēlaties, lai būtu HTML atklātu un ciešu tagu augšā un apakšā jūsu kodu. Jūs vēlaties, lai būtu galva iekšpusē kas satur nosaukumu, tikai kāds gatavojas, lai parādītu cilni jūsu web lapas, un pēc tam ķermeņa iekšpusē no kuriem faktiski parādītu saturu par ko jūs vēlaties darīt. Tātad, ja jūs vēlaties, lai faktiski palaist Tas, es esmu gatavojas tālinātu. Jūs faktiski var sākt apache50 sākt dot. Cool. Un tā, kā jūs varat redzēt, tagad šī saite ir popped up. Tajā teikts, jūsu vietne ir tagad pieejams kādā saites zemāk. Tātad visi mūsu IDE ir done-- ne IDE, sorry-- yeah, Mūsu IDE ir paveikusi, ir izveidot tīmekļa Saite uz kuru visas mūsu mājas lapas var piekļūt no servera. Tātad, pieņemsim to apskatīt šeit. Pieņemsim, noklikšķiniet uz šo, dodieties uz hello.html. Un jūs redzat ļoti vienkāršs mājas lapa Hello World. LABI. Mēs tiešām gatavojas tikai ir everyone-- yeah, kas notiek? Mērķauditorija: Man ir pamata jautājums. ANDI PENG: Yup. Mērķauditorija: Kā jūs ietaupīt Jūsu fails kā HTML? ANDI PENG: Jā. Tātad, ja es būtu, lai izveidotu jaunu failu, ja es daru jaunu failu, Untittle, ja es daru, section.html, boom, tas ir viss, kas man ir jādara. Mērķauditorija: [dzirdams]? ANDI PENG: Nē. Mērķauditorija: [nedzirdama]. ANDI PENG: Nē. Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Diezgan daudz, pagarinājumu uz fails, kas ir iekšā jūsu IDE, kas stāsta dators, ka stāsta pārlūku, hey, skaties. Šis būs kods rakstīts šajā valodā. Tā, piemēram, Microsoft Word, ko darīt visus Word dokumentus beidzas ar, ko pagarinājumu? .doc vai .docx, vai ne? Viss, kas tas ir precizēts līdz operētājsistēmas, hey, tev Word dokumentu nāk uz augšu. Atveriet to ar Word. Pats ar PDF failiem. Tā zina, oh, man vajag atvērt šo failu ar Adobe Reader vai Adobe Acrobat. Un tā paplašinājumi darbinātu tāpat kā datorā. Ja jūs norādiet savu kodu lappuse kas tiks nosaukts HTML, tad tā zina, Ak, jūs esat ieguvuši HTML kodu. Es esmu gatavojas, lai ārstētu to kā HTML kodu. Tātad, tas ir super gudrs šajā ziņā. Tātad visi, pieņemsim, piemēram, 10 minūtēm un vienkārši izveidot mūsu pašu mājas lapas. Pieņemsim pievienot jaukajām lietām. Jūtieties brīvi teikt, ko vien vēlaties. Es tikai vēlos, lai pārliecinātos, ka ikviena serveri darbojas pareizi pirms mēs atbrīvotu tevi PSET. Jo, ja jūsu serveriem neskrien uz PSET, ka būs ļoti, ļoti slikti. Es esmu tikai gatavojas peldēt apkārt un redzēt, ko visi strādā tālāk. Kā iet? Mērķauditorija: Es tikko ieslēgts manā datorā. ANDI PENG: Tas ir OK. Mērķauditorija: [nedzirdama]. ANDI PENG: Just jūsu IDE. Jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Tas ir OK. Mērķauditorija: [nedzirdama]. ANDI PENG: Pilnīgi naudas sodu. Vai visi piekļūstot to web serveri OK? Vai apache50 darbojas OK? Es domāju, ka daži no citas sekcijas, mēs bija problēmas ar cilvēkiem, kas nav spēja, lai piekļūtu serverim. Jā. Tātad jūs vienkārši palaist apache50 telpa sākt kosmosa periodu. Mērķauditorija: [nedzirdama]. ANDI PENG: Yup. Labs? Mērķauditorija: [nedzirdama]. ANDI PENG: Ak, OK. Tātad jūs vajadzēja būt atstarpi. Tātad apache50-- Mērķauditorija: I did. ANDI PENG: --start telpa. Mērķauditorija: Ak, telpa dot. ANDI PENG: Yup, telpa dot. Lūdzu. Tātad, ja jums ir HTML lapas radīta, tad jūs varat iet tieši uz saiti, ka tā nosaka. Un jums vajadzētu būt iespējai piekļūt. Ikvienam spējuši piekļūt viņu mājas lapas OK? Mērķauditorija: [nedzirdama]. ANDI PENG: Ak, tas ir OK. Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Es domāju, ka jūs faktiski var atvērt tas jūsu pārlūka, pārlūku un ne tikai savu IDE pārlūku. Jā, es domāju, ja jums kopēt un ielīmēt. Mērķauditorija: Un tad kā mēs to izslēgt? [Dzirdams] ANDI PENG: Jā, jūs apache50 pārtraukt bez periodā. Jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Bez periodā. Jā. Tur mēs ejam. Jā. Mēs izveidot mūsu pašu mājas lapas. Mērķauditorija: Ak, atdzesē. ANDI PENG: Jā. Mērķauditorija: Man ir jautājums. Tātad apache 50-- ANDI PENG: 50, jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Kas? Tas ir dīvaini. Skat, tas bija sava veida jautājuma kas bija noticis pirms tam. LABI. Mani redzēt pēc iedaļas. Tāpēc, ka mums ir daži problēmas ar serveri. Un jūs vēlaties, lai pārliecinieties, ka jūsu serveris ir rādīt pirms sākt PSET. Tāpēc, ka jūs gatavojas to vajag. Jā. Vai ir kāds cits, kas nav bijis iespēja saņemt savu serveri, lai sāktu? Attiecībā uz tiem no jums, kuri vēlas pievienot papildu stils uz jūsu tīmekļa lapas, mēs faktiski var darīt to, ko Dāvids darīja lekciju, kā arī, kas rada papildu stilu loksnes, kas ir dot CSS, Cascading Style Sheet un patiesībā vienkārši pievienojiet to. Tā, piemēram, es esmu tikko izveidojis diezgan daudz gandrīz tieši tādu pašu viens Dāvids darīja lekciju. Jūs varat diezgan daudz vienkārši darīt ķermeni. Jums ir, ko sauc par tagus, kurā Jūs varat pieteikties uz IDE neatkarīgi sadaļu jūs vēlaties savā Faktiskais uz HTML lapas. Tātad iestāde lapā, jūs var darīt teksta saskaņot centru. Un tad es radošs tag sauc top iekšā par kuru es gribu šīs lietas gadīties, piešķirt lielāku pikseļa izmērs par fontu. Es gribu fonts svars būt drosmīgs. Un es gribu krāsu zila, tikai patvaļīgi vērtības, kas es nolēmu izvēlēties. Es varu izveidot citu tagu sauc vidus. Burtu lielums, padarīt to nedaudz mazāks. Un tad es varu izveidot citu tagu sauc dibens, kur es gribu fonta lielumu būt pat mazāks joprojām. Un tā diezgan daudz tas ir tikai piemērs pirmkoda vai avota stila lapas ka tas ir ļoti viegli, lai tikai Google. Ja jūs sakāt, ak, es gribu savu fontu kas italicized un tumši zaļa, Varat droši Google, un tad tas jums pateiks attiecīgus tagus vai ID izveidot. Un tā tā, ka jūs patiešām veida ir šī HTML dokumentā vai izmantot tas ir viss, kas jums darīt šeit ir galvas pievienot saiti uz stila lapas. Tātad jūs varat saistīt href Vienāds kāds nosaukums jūsu stilu lapas ir. Un tad attiecības ir stila lapas. Tātad jebkurā HTML dokumentā, kamēr kā jūs iekļaut šo dot CSS lapu, Jums vajadzētu būt iespējai piekļūt un ir īpašības tur. Tā, piemēram, šeit es esmu tikko izveidot vēl vienu piemēru mājas lapu. Tas ir apsveicami, lai CS50 sadaļu Otrdienās no 2:00 līdz 3:30 ar mani. Un tad es esmu pievienojis jauki attēlu, kas mēs, iespējams, vajadzētu būt iespējai redzēt. Tātad, ja jūs to apskatīt šeit, ja jums iet uz style.html, mēs izveidojām mājas lapu ar kaķēniem. Tā kā kaķēns ir awesome. Tātad pievienojot attēls ir tikai img src saiti. Diezgan daudz, ja tur ir jebkāda veida funkciju vēlaties pievienot savu website-- tāpēc teiksim, vēlaties pievienot izvēlni vai meklēšanas bar vai, piemēram, image-- tikai Google, kā to izdarīt. Un jūs vienkārši plunkšķis šajā formātā. Un jūs varat vienkārši diezgan daudz vienkārši pievienojiet to. Tas ir ļoti, ļoti viegli. Mēs radām mūsu pašu Web lapas tieši tagad. Ja Tu gribi-- Mērķauditorija: [dzirdams] ANDI PENG: Sorry? Mērķauditorija: [nedzirdama]. ANDI PENG: Ak, div ir tikai nodaļa stāsta man, ka, ak, man ir noteikta sadaļa sauc vidus, kurā es esmu piemērojot mans CSS tag, un pēc tam mana otra nodaļa ar apakšu. Tas ir viss, tas ir stāsta jums. Jo tas ir jauki, lai saglabātu lietas veikls, lai, tāpēc programma zina, kā tieši, lai palaistu. Un domāju, ka varu kopēt ielīmēt šo manā faktisko pārlūkprogrammā, kā arī. Tas būtu labi. Jā. Yay. Tātad, ja visi grib tikai mēģināt izveidot mājas lapu, mēs ņemšu vēl divas līdz trīs minūtes. Es tikai vēlos, lai pārliecinātos, ikviena serveri darbojas un ikvienam ir Ideja par to, kā to darīt. Ja jūs puiši vēlas izņemt savus datorus. Joprojām nedarbojas? Mērķauditorija: Es esmu tikai [nedzirdama]. ANDI PENG: Varbūt mēģināt atjaunināt 50, kā arī. Jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Tātad tā, ka jūs sākat jaunu web serveri uz IDE ir tikai do apache50 telpa starta kosmosa dot. Es tikai gribēju pārliecināties ikviena serveri darbojas OK. Mērķauditorija: Lūk, uz gala? ANDI PENG: Jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Apache. Patiesībā, es domāju, ka tu esi rādīt kaut ko jau. Jā, jūs faktiski darbojas cita servera. Jā, tu esi labs. Tik ilgi, kamēr tas strādā, tu esi OK. Mērķauditorija: OK. ANDI PENG: Tur ir divas veidi, kā palaist serveri. Tik ilgi, kamēr vienu no veidiem strādā, tas viss ir taisnība. Mēs ņemšu vēl minūti tikai, lai veida pabeigt līdz apdares skar Jebkāda Web lapas puiši gribēja darīt. Vai ikvienam, kas strādā starp citu? Ikviena serveri ir darbojas ne tikai par jums? Mēs izdomāt. Un HTML ir diezgan vienkāršs. Tāpēc es domāju, ka mēs visi esam labi. Jā. Es atgriezīšos. Mērķauditorija: [nedzirdama]. ANDI PENG: OK. Mērķauditorija: Tātad, tas ir vienkārši sāka slodze uz augšu. ANDI PENG: Neraizējieties. Tātad HTML, tur ir pirmkods, ka būs pieejams tiešsaistē pēc iedaļas. Arī Deivids ir veselas ķekars tiešsaistē, kā labi. Just veida skatienu pār to, lai redzēt, kā HTML lapas ir rakstīts. Tas ir diezgan viegli. Anything jūs nezināt, jūs diezgan daudz tikai Google un jūs labi. Es tikai vēlos, lai pārliecinātos, ka Jūsu serveri darbojas. Mērķauditorija: Vai tā darīt bieži? ANDI PENG: Tas nekad nav noticis ar mani. Es nezināju, tas varētu pat pārziemot. Mērķauditorija: [nedzirdama]. ANDI PENG: Es domāju, ka everyone-- raktuves nekad hibernated agrāk. Un es nezinu, kāpēc. Tas ir dīvaini. Mērķauditorija: [nedzirdama]. ANDI PENG: Vai jūsu ziemošanu? Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Mērķauditorija: Tas ir OK. Tātad, kad tas ir atvērts. ANDI PENG: OK. Mēs strādājam ar kādu serveri jautājumiem pēc iedaļas. Jums jābūt naudas sodu. Lai gan, jūs vēlaties, lai pārliecinātos, ka jūs saņemt tos atrisināt, pirms jūs atstāt. Jo, ja jūsu servera nedarbojas, tad tu esi nav gatavojas, lai varētu to darīt PSET, tāpat kā jebkurā PSET. Tātad jūs vēlaties, lai pārliecinātos ka tas strādā. Cool. Viss kārtībā. Atsveicināties kaķēnus. Es pavadīju ilgu laiku meklē ka kaķēns attēls likts uz. Tātad, anyways. Mērķauditorija: [nedzirdama]. ANDI PENG: Sorry? Mērķauditorija: [nedzirdama]. ANDI PENG: Es domāju, ka tas ir mājas lapā. Tāpat kā spec? Mērķauditorija: [nedzirdama]. Es domāju, ka spec ir tikai online nedēļā septiņās. Es domāju, ka tā sauc pset6, pat lai gan mēs esam par nedēļu septiņi, kas ir mazliet skaitļošanas. Mērķauditorija: Bet es domāju, ja jums vēlaties meklēt at-- ja jums gribu uzvilkt savu versiju mājas lapā no mūsu atdalīt? Tātad, piemēram, server.c ir PSET, vai ne? Ja vēlaties apskatīt šo, tāpat kā tā pārbauda ārā? ANDI PENG: Ak, tik tiešām PSET, viss, ko mēs darām Šeit tiek implementing-- šeit, Es iešu pa šo īsi. Tātad ikvienam, kas ir tikai gotten iedaļai, jūs guys ir luck. Ir ļoti maz materiāls faktiski segtu šodien. Es esmu tikai gatavojas pavadīt nākamo 20 minūtes iet pa PSET palīdzību. Jo tur ir daži noderīgi funkcijas, kas palīdzēs jūsu dzīvi. Un, cerams, mēs būsim ārā no šeit, piemēram, 20 minūtes. LABI. Tātad pset7 ir nepareizi. Pat ja mēs esam par nedēļu septiņi, tas faktiski pset6. Es mainīt. Visi mēs darām ar pset6 rada web serveri. Tas izklausās super biedējoši. Un jo īpaši tiem, no jums, kas ir jau paskatījās sadales kodu, tur ir daudz kodu, daudz koda. Bet ir pilnīgi OK. Jo utains graudaini daļa faktiski radot serveris tiek darīts ar mums. Viss, jūs tiešām jautāja darīt šajā PSET ir tikai darīt kādu stīgu manipulācijas failā I / O. Tas ir faktiski tāpat diezgan vienkāršs. Tātad, kad jūs pirmo reizi lejupielādēt that-- kas šeit ir faktiski jau lejupielādēta PSET un ņem apskatīt? Viss kārtībā. Jā. Tur ir kā 500 rindas kodu ka jūs esat būs, piemēram, kas notiek? Un tas ir pilnīgi naudas sodu. Pārliecinieties, ka jums skatīties staigāt pievadiem. Jo David and-- es nezinu. Es nedomāju, ka tas ir Zamyla s, šo vienu. Bet es domāju, ka daži citi Walk-pievadiem ir diezgan noderīga ziņā vienkārši ļaujot jums zināt to, kas notiek iekšpusē jūsu kodu. Un tas ir pilnīgi OK. Jo četras funkcijas, kas jūs esat lūdza, lai īstenotu patiešām nulle darīt ar faktisko serveri. Visi viņi ir jādara, ir tikai analizējot dažādas stīgas, meklējot ar stīgām, lai pārliecinātos, ka lietas darām ko viņi būtu jādara. Tātad šajā sakarā ir daži ļoti, ļoti noderīgas funkcijas, īpaši stīgu manipulācijas, ka mums visiem iet pāri, ka es domāju, ka man būt ļoti noderīga, lai jūs puiši apgūt pirms mēģināt PSET. Un viņi visi ietverti jūsu string.h bibliotēkā. Tur droši vien vairāk noderīgs funkcijas man nav iekļauti šeit, jo es nu nekad tos izmantot vai varbūt es vienkārši nezināju tie pastāv. Jūtieties brīvi skatienu caur student.h. Jo tur būs daudz Funkciju, kas ir ļoti noderīgi. Tātad seši ka es izmantoju visvairāk manā PSET, kad man bija darīt to pagājušā nedēļā bija strtok, strchr, strrcher, strstr, strcasecmp, un strcpy. Un tā pēdējie divi var likties diezgan pazīstams ar lielāko daļu no jums. Str gadījums salīdzināt, visiem tas ir salīdzināt stīgas, lai pārbaudītu tos vienlīdzību, tostarp lietu. Un strcpy tikai kopijas viens string uz buferi. Un tā tie divi būtu, šķiet ļoti pazīstams ar jums puiši šajā brīdī. Tāpēc, ka mēs esam izmanto viņiem daudz, jo īpaši attiecībā uz pēdējo psets. Bet pirmo četru varbūt neesat redzējuši līdz šim. Bet es esmu gatavojas vienkārši staigāt pa tiem. Tāpēc, ka viņi gatavojas padarīt savu dzīvi tiešām, tiešām viegli for-- nav viegli, bet daudz vieglāk šo gaidāmo PSET. LABI. Tātad char * strtok, tas ir funkcija definīcija šai funkcijai ietverti ietvaros stīgu, h bibliotēkā. Ja Jums ir dota ievadi char * string, kas ir tikai string, vai konstante char * deliminator, delim īstermiņa, visi tā dara pārkāpj lielāks string vērā virkni, ko mēs saucam žetoniem atdalītas ar noteiktu vērtību. Tātad savā ziņā, ja man bija, lai dotu jūs section.7.php, tas ir virkne. Tātad, kas būtu, ja es būtu iziet Šajā kā manā ielā, mans char * str, ja mans deliminator bija dot, tas viss varētu darīt, ir meklēt caur virkni. Un pirmo reizi tas redz dot, tas vienkārši atgriezties pie bultiņas pēdējam simbolisku atrasts virknē pirms šīs. Tātad tas varētu iet tieši šeit. Un tas tikai dod man 7.php. Un, ja es būtu aicināt darboties vēl vienu reizi, tas dotu man tikai php. Un tā tas viss funkcija dara ir sašķeļot lielāku stīgu mazākos virknes atkarībā par to, ko jūs meklējat. Un tā, piemēram, uz savu izskatu up funkcija ja jūs vēlaties, lai pārliecinātos, kādi dažas rakstzīmes nākt par vai ja punkti notikt vai paplašinājumi notikt, šī funkcija būtu diezgan noderīgi. Jā. Neuztraucies. Tas viss be-- yeah, kas notiek? Mērķauditorija: Tātad pirmajā rindā, ja mēs, izmantojot šo piemēru, Ko gan mēs ievietot kas? ANDI PENG: Jā. Jūs tikai zvanīt strtok string komats delim. Un virkne ir vienāds ar section.7.php. Un tad tu esi delim varētu būt vienāds, lai tikai dot. Mērķauditorija: OK. ANDI PENG: Jā. Tieši tā. Visas šīs funkcijas ir diezgan Līdzīga kad mēs iet caur tiem. Viņi vienkārši darīt nedaudz atšķirīgas lietas. Bet viņi visi gatavojas padarīs Jūsu dzīvi daudz vieglāku. Otra funkcija, šis viens ir, piemēram, super, super, super svarīgi, ir the-- turēt līdz. Hmm. Strchr meklē pirmais occurrence-- faktiski, jā. Strchr ir funkcija, kas Es noteikti devos pāri. Tātad, ignorēt to, ko es teicu pirmo funkciju. Tas ir faktiski aicināja strchr. Tātad, kas būtu noticis, šeit ir, ja jums tika dota virknes char c, tas tikai dod Jums kāds tas bija. Jā. Tātad domā par to kā iela, kas ir virkne, un Chr kā char. Tātad visi jūs mēģināt darīt, ir meklēt Jo kur ir char atrodas virkne. Un tā tas meklē pirmais rašanās rakstura c ar String str. Mērķauditorija: [nedzirdama]. ANDI PENG: Yup. Un tad, ja tā nav konstatējusi tas, ka tas notiek, lai atgrieztos NULL. Tātad kaut kas būs ļoti noderīga, lai jūs guys dara PSET ja, teiksim, jūs meklējat pagarināšana kā .docx par Word dokuments vai .pdf uz PDF dokumentu, Jūs varat veida to izmantot, lai meklētu kāda ir tam Katru reizi, kad jūs redzat dot, vai ne? Un tā diezgan daudz, ja jums palaist, ka caur funkciju, ja tā atgriež NULL, tad jūs zināt, ka tas neatrada to dot, kas nozīmē, ka šis acīmredzami nav derīgs faila paplašinājums. Vai arī, ja tas atgriež kaut kas, tad jūs zināt tas notiek, lai atgrieztos kāda ir faktiski pēc pagarinājuma. Tātad tiem no jums, kas bija sāka meklē caur lookup un apstrādāt, šī funkcija ir būs super noderīga. Tātad mēs faktiski gatavojas demonstrēt, izmantojot šo. Kāpēc jūs guys mēģiniet rakstot funkcija bool teikums char * s, ka vienkārši atgriež Patiess ja s ir teikums un viltus citādi. Tātad mājiens, jūs gatavojas to iespējams izmantot strchr. Vai jūs vienkārši meklēšanai string noteiktu raksturu. Un tā vienā teikumā, kas atdala sodu no ne-teikumu, kāda specifika? Mērķauditorija: telpa. ANDI PENG: telpa, labi? Un tā, ko mēs, iespējams, gatavojas gribu darīt šajā funkcija šeit? Mērķauditorija: [nedzirdama]. ANDI PENG: Mēs esam gatavojas vēlaties strchr string par izskatu telpā. Jo, ja tā atgriež kaut ko, tad mēs zinām, ka tas ir sods. Tas nozīmē, ka mums ir ir vietas šajā virknē. Ja tur nav vietas, tad mēs zinām, ka, hey, domāju, tas nav virknes. Tas ir iespējams tikai ļoti garš vārds. Tāpēc es došu jums puiši pāris minūtes, lai rakstītu šo funkciju. Jā. Mērķauditorija: Vai jums šī virkne no lietotāja? ANDI PENG: Jā. Tātad tas ir tikai funkcija. Tik iedomāties iekšā savu galveno funkciju Jūs jau have-- iesim šeit. LABI. Tāpēc es esmu uzrakstījis šajā programmā, ja Man ir mana galvenā funkcija, kur Esmu tikko izveidojis divas stīgas. Pirmais ir Sveiki, mans vārds ir Andi-- skaidri, teikums. Mans otrais viens ir tikai Andi, nepārprotami nav teikums. Un tā es skrienu, gan no tiem, stīgas, izmantojot šo funkciju. Es gribu, lai jūs guys rakstīt aukstu sodu. Un es esmu glabāšanai šīs vērtības, un tad tikai iespiešanu out. Tāpēc domāju, ka lietotājs ir gatavojas iet ar virkni. Un tad jūs gatavojas būtībā izdomāt, ja tas ir sods vai ne un atgriezties patiess vai nepatiess atbilstoši. Ja jūs puiši vēlas, lai dotu thumbs up vai galvu uz augšu, galva nod, ir kāds ir gatavs sākt Tas, ka gribētu būt labs. Varbūt tāpat kā 30 sekundes vairāk? Viss kārtībā. Let 's redzēt, ja jūs varat mēģināt rakstot šo funkciju. Tātad pseido coding-- es esmu tikai gatavojas veida staigāt pa šīs tiesības tagad. Diezgan daudz, mēs zinām, funkcija, kas mums ir nepieciešams, lai izmantotu. Mēs ejam, lai izsauktu šo funkciju Mūsu stīgu un meklēt atstarpi. Ja tā atgriežas kaut, tad mums ir zina, ka, skaidri, tas ir teikums. Jo tur ir atstarpes. Tad mēs ejam, lai atgrieztos taisnība. Else, mēs ejam, lai atgrieztos nepatiesa. Vai kāds vēlas, lai dotu mani pirmajā rindā kodu ka mēs faktiski gatavojas izmantot, lai rakstītu šo? Tas ir faktiski visgrūtāk līnija kodu, kā arī. Jā. Mērķauditorija: Ja strtok s-- ANDI PENG: Just strchr. Mērķauditorija: [iestarpinot Voices] telpa nav vienāds ar null. ANDI PENG: Cool. Tieši labi. Ikvienam jāsaprot, ka pirmajā rindā? Mēs ejam, lai izsauktu strstr, kas ir funkcija, kas meklē stīgu s par char telpā. Un, ja tā konstatē to, tas notiek, lai atgriešanās rādītāju uz kur tas ir. Ja tā nav atrast to, tas notiek, lai atgrieztos NULL. Tātad, ja tas atgriež neko citu kā NULL, tad mēs zinām, tas ir atradis vietu. Vai tas ir jēga? Cool. Viss kārtībā. Tātad, ja mēs zinām, tas ir atradis telpa, ko mēs vēlamies darīt? Mērķauditorija: Atgriešanās taisnība. ANDI PENG: Yup. Atgriešanās taisnība. Un tad, kāds vēlas pabeigt līdz funkciju par mani? Jā. Else, tieši tāpat. Un mēģināt apkopojot šo. Jā. Tātad, kā jūs guys var redzēt no izejas, atcerieties Booleans C vienmēr izsaka bināro. 1 ir taisnība. 0 ir nepatiess. Ja mēs, lai palaistu šo funkcija stīgu vienu, kas ir Sveiki, mans vārds ir Andi-- Skaidrs, ka sentence-- rezultāts izdrukāts uz 1, kas ir true. Otrais, kas ir tikai vārdu, rezultātu izdrukā 0, kas ir nepatiess. Ikvienam skaidrs veida, kā šī funkcija bija rakstīts? Jā. Mērķauditorija: Vai mēs arī darām, nevis nav vienāds nē, ir vienāds vienāds ar 0, tā, ka tas ir vienāds ar? ANDI PENG: Nē. Jo strchr ir funkcija. Es esmu gatavojas atpakaļ uz šo. Tātad, kāda ir atgriešanās tips Mūsu strchr funkcija? Mērķauditorija: Ak, OK. Vai NULL. ANDI PENG: Jā. Tas ir char *, kas man saka, ka neatkarīgi Šī funkcija ir gatavojas atgriezties, tas būs rādītājs. Vai nu rādītājs būs norādot, kur tā atzina, ka, vai tas notiek, lai atgrieztos rādītājs uz null. Jebkurā apstākli, tas notiek atgriezties rādītāju uz kaut ko. Un tādēļ, ja Jums bija vienādot tas ir vienāds, vienāds, 0, jūs gatavojas iegūt apkopošanas kļūda. Jo tas notiek, lai atgrieztos rādītāju. Un jūs gatavojas, lai mēģinātu salīdziniet rādītāju līdz veselam skaitlim. Un dators nav gatavojas patīk, ka. Jā, tieši tā. Cool. Ikvienam labs? Un, otrkārt, mēs ejam, lai iet vairāk funkciju sauc strstr. Neraizējieties, ja šie funkcijas ir mulsinoši jums. Viņi jauc mani. Tā, piemēram, jūs puiši varētu būt redzējis, viņi visi skaņu diezgan daudz to pašu. Tikai kad tu esi sajaukt, uzvilkt string.h bibliotēku. Un jūs guys var kārtot caur kuriem viens ir kas. Tātad strstr, viss, kas dara, ir meklējumi virkne veselu virkni citu. Tātad, ja strchr tikai meklējumi par vienu rakstzīmi, strstr meklē veselu virkni. Tāpēc es gribēju meklēt, man nav zināt, Sveiki, mans vārds ir Andi. Un mans labākais draugs vārds ir arī Andi. Ja es gribēju meklēt šajā teikums par visu vārdu Andi, mans adata būtu bijis ko jūs meklējat. Un jūsu siena kaudzē ir jebko, jūs meklējat to. Tātad, ja jūs meklējat īpašs vārds kādā teikumā, šis vārds būs jūsu adatas. Un tad pats teikums būs jūsu siena kaudzē. Un tā tas vienkārši meklē pirmais notikums no stīgu adatas ar stīgu siena kaudzē. Tā atgriež rādītāju uz pirmā rašanās. Izņemot, atcerieties, šajā gadījumā, tas ir pirmais notikums no visa string ka jūs meklējat par, ne tikai raksturs. Un tā tas ir gandrīz pats kā funkcija mēs tikko bija, tikai ar mazliet vairāk specifiku. Tāpēc, ka jūs meklējat vairāk nekā tikai vienu rakstzīmi. Un izmantošana ir tieši tā pati kā viens, ka mēs tikko izdarīja. Ikvienam OK ar šo? LABI. Pēdējais mēs ejam, lai iet vairāk nekā ir strrchr, kas nav sajaukt ar strstr vai ar strchr. strrchr ir papildus R tur. Esi uzmanīgs, ja jūs rakstāt. Jūs varat atrast sev ieskaitot papildu r vai ne tostarp r, un tad jūsu funkcija ir got nav dodas uz darbu. Un jūs esat būs sajaukt. Esi uzmanīgs, ka jūs pareizrakstības Visas šīs funkcijas labi. Tātad strrchr ir precīza pats kā strchr izņemot tas meklē nav pirmais rašanās īpašu raksturu, bet pēdējais gadījums. Un tā, šajā ziņā, tas ir gandrīz tieši tādu pašu. Bet tā vietā, pārvietojas priekšu virkni, jūs esat būs pārvietojas atmuguriski virkni. Tieši tas pats, tu esi vienkārši meklē citā secībā. Un tā tas varētu būt super, super noderīga Jūsu lookup funkcija, pirmais funkcija jūsu PSET. Pieņemsim, izlikties, ka mums vajadzēja rakstīt funkcija neesošu pagarinājumu, kurā mēs iziet pastāvīga char * faila nosaukumu, tikai string, faila nosaukumu, kas notiek ar šo nosaukumu un izdrukas ārā no šī faila paplašinājuma. Tā, piemēram, ja man bija pāriet uz virkni pset7.zip, tas notiek izdrukāt tikai paplašināšana, kas ir Zip. Un tas strādā jebkāda veida paplašināšanu, .docx Word vai pdf uz PDF failu vai .html uz HTML failu. Diezgan daudz, rakstīt funkcija, kas var darīt. Es esmu patiešām gatavojas pārslēgties uz IDE. Tas nav load-- tur mēs ejam. Tātad viss, ko es esmu darījusi šeit ir radīja char *, pirmais stīgu, sauc pset7.zip. Es esmu gatavojas, lai tuvinātu. Esmu izveidojis otro virkni sauc finalpaper.docx. Un rakstīt man funkciju, kad aicināja gatavojas vienkārši izdrukāt faila nosaukumu paplašinājumiem. Varbūt veikt pāris minūtes, lai domāt par to, kā jūs gatavojas to darīt. Nedaudz grūtāks nekā pēdējais, bet izmantošana ir gandrīz tieši tāds pats. Jā. Tātad uzrakstīt funkciju sauc pagarinājumu ka, ja es dodu jums vārdu faila, ja man bija, lai dotu jums pset7.zip-- I vēlamies, lai jūs izdrukāt tikai .zip. Ja es jums patīk finalpaper.docx, vienkārši izdrukāt .docx, tikai no jebkura faila paplašinājums. Tas patiesībā ir tikai aizņem divas rindas kodu. Tātad mēģiniet, lai redzētu, vai jums var varbūt darīt to, kas. Patiesībā, tas tikai aizņem vienu rindiņu kodu. Bet divas līnijas, iespējams, vairāk standarta. Kādas funkcijas ir mēs, iespējams, gatavojas vēlaties, lai izsauktu? Mērķauditorija: strrchr. ANDI PENG: strrchr, labi. Tāpēc, ka mēs meklējam no labās pa kreisi. Man nedeva jums puiši piemērs, kā šis, bet, ja es tev piemēru, piemēram, www.apple.com un es tikai gribēju Com, tas lūdzu būt piemērs, kur jūs vēlaties, lai izsauktu pēdējo instanci perioda, un nav pirmā, vai ne? Ja tu būtu zvanu strchr, to būtu esmu devis jums apple.com. Ja jūs sauc strrchr, to būtu devis jums Com. Un tāpēc jābūt uzmanīgiem, par kuriem ways-- manā piemērā, jūs, iespējams, varētu varētu būt vienkārši rakstīts to, izmantojot strchr, jo tur ir tikai viens dot. Bet citos gadījumos, kas nedrīkst būt gadījums. Un tā vienmēr cenšamies veidot Jūsu kods labi, tāpēc that-- yeah? Mērķauditorija: Tātad Piemēram jūs tikko teica, kad jūs strrchr tas būtu dot jums .com vai vienkārši nākt? ANDI PENG: Tas dotu jums Com. Mērķauditorija: OK. ANDI PENG: Jā. Tas norāda uz to, kur to atradis. Jā. 30 sekundes varbūt? Jā. Ikvienam labs vai varbūt mazliet vairāk laika? Paceļot rokas? Parādīt vadītāju? Cool. Ikviens vēlas, lai dotu man pirmais līnija koda šai programmai? Mērķauditorija: [nedzirdama]. ANDI PENG: Tātad pirmkārt, pieņemsim varbūt lauzt šo leju. Tātad, kas ir atgriešanās veids strrchr? Iesim atpakaļ. strrchr, kas ir atgriešanās veidu? Mērķauditorija: Char * ANDI PENG: Tas ir char *, vai ne? Kas nozīmē, ka jūs, iespējams, gatavojas vēlas izveidot citu char *, lai natūrā no veikala, kad vien tas ir atgriežoties, vai ne? Jo, ja jūs zvanāt funkcija strrchr, tas notiek, lai dotu jums rādītāju uz kur tā konstatēja, ka pēdējā laika posmu, labi? Bet jūs gatavojas vēlaties uzglabāt, ka kaut kur, vai ne? Un tā kā mēs kodu Tas mūsu programmā? Mērķauditorija: Tu Char * [nedzirdama]. ANDI PENG: Yep. Mērķauditorija: [nedzirdama]. ANDI PENG: strrchr. Jā. Ak, garām r tur. Mērķauditorija: File nosaukums [nedzirdama]. Kas tas ir? Ak, tas ir tikai s. ANDI PENG: Ak, tas ir vienkārši s. Yup, sorry. Mana vaina. Piemēri nesakrita. Mērķauditorija: Un tad dot. ANDI PENG: Yup. Esi uzmanīgs, ja jūs guys are-- šeit, ļaujiet man tuvinātu. Tur mēs ejam. Esi uzmanīgs, ja jūs guys ir rakstīt, jo īpaši, ja jūs darāt tikai char. Tas ir patiešām viegli nejauši vienkārši do dubultās pēdiņas, nevis vienu. Tas nestrādās. Jūsu kompilators gatavojas sūdzēties. Un jūsu uzdevums ir vienkārši nav gatavojas palaist. Un tāpēc jābūt uzmanīgiem, jūs darāt lietas ar simboliem, ka tas ir vienu pēdiņām. Un tā tas šo līniju kods jēga visiem? Mēs esam radot char * rādītāju. Jo strrchr atdevi kaut tipa kursoru. Un tā mēs ejam, lai izsauktu strchr uz s, kas ir virkne, fails nosaukt, ka mēs esam garāmejot. Un mēs meklējam pēdējais instance uz laiku, kas ir tikai vienotais quote dot vienu citātu. Jā. Mērķauditorija: Kad mēs izmantot dubultās pēdiņas un kad mēs izmantojam vienu pēdiņām? ANDI PENG: Jā. Tātad dubultā pēdiņas ir vienmēr izmanto, ja jums ir virkne vairāk nekā tikai viens. Tātad, ja jūs darāt strstr, kas ir viens, ka jūs meklēt virkni stīgu, jums nodos to pēdiņās. Bet jebkurā laikā tas ir tikai vienots raksturs, jūs vēlaties darīt vienu pēdiņām. Tā ir laba lieta, kas jāpatur prātā. Tāpēc tagad, ka mums ir mūsu rādītājs, ko mēs darām ar to? Es esmu jautā jums guys drukāšana to ārā, labi? Tātad [dzirdams], jūs vēlaties iedodiet man rindiņu kodu? Mērķauditorija: printf-- ANDI PENG: Jā. Mērķauditorija: --you nepieciešams vietturim. ANDI PENG: Yup. Mērķauditorija: Izdrukājiet vietturim. Es nezinu, kāda vietu turētājs ir, bet norāda uz to. LABI. Pieņemsim izlaist, ka tagad tam. Mērķauditorija: Un tad comma-- ANDI PENG: Pointer, vai ne? Mērķauditorija: Pointer, yup. ANDI PENG: Tātad veida āķīgs jautājums, ir sakars ar norādes un stīgām ka mēs esam sava veida runāja par jau. Kādu vietu turētāja darīt mēs nepieciešams rādītājs par char *? Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Tas ir vieglāk, nekā jūs guys domāju, ka tā ir. Mērķauditorija: String? ANDI PENG: Tas ir tikai string, tieši tā. Jo atceros stīgas nav īsti nepastāv. Char * ir precīza pats kā virkni. Un tā tiešām tas s ir tas, ko būtu jāizmanto visi kopā. LABI. Let 's redzēt, ja mēs varam mēģināt rādīt šo. Darīsim make pagarinājumu. Cool. Jūs guys redzēt, kā es pagājis In psset7.zip un finalpaper.docx, un tas tikai izdrukā .zip un .docx? Jēga? Labi, tāpēc es domāju, ka jūsu uzmeklēt funkcija jūsu PSET jūs esat tiks jautāts, vai string ir zināma beidzas, jums ir jāsniedz zināma kļūdas kodu. Un tā tas būs diezgan šausmīgs. Jo, ja jūs varat izdomāt , kāda paplašināšana, tad jūs varat salīdzināt, ka paplašināšana, lai redzētu, vai tas atbilst up ar noteiktu paplašinājumu. Un tad jūs varat atgriezties kļūdas ziņojums, vai ne? Jā. Mērķauditorija: Tātad mums nav ir pievienot 1 vai kaut ko? Rādītājs dosies uz the-- ANDI PENG: Nē. Mērķauditorija: --point pēc tā. ANDI PENG: Jā. Tas norāda tieši kur notikums bija. Tā, piemēram šeit, mēs esam meklējot periodā. Tātad, tas notiek, lai atgrieztos rādītāju uz periodu. Un tad tas notiek, lai drukātu out sākot perioda. Tātad jums nav nepieciešams pievienot 1. Kaut gan, tas ir pilnīgi naudas sodu līdz, ja tu esi kādreiz pārliecināts, lai tikai veida no pārbaudītu to pats. Veidot programmas paraugā. Pārbaudītu to pats, un redzēt, kur tas ir apdruka. Tas arī nav slikts veids, kā to darīt. Cool. Un tas ir diezgan daudz viss Man bija jums puiši šodien. Mums bija daudz PSET sīkumi šodien. Tātad, ja ir šaubas, piemēram, Es teicu, vienmēr meklēt string.h bibliotēka šajā PSET. Tur būs daudz funkcija, kas tur, kas var būt noderīga. Dažas var būt noderīga. Man nav īsti zināt. Wade caur to, tur ir visu ķekars no tiem. strstr, strchr, strrchr ir super, super noderīgi, kā arī tad strcpys un strcasecmps ka mēs esam jau izmanto. Tas ir tikai daudz par messing aptuveni ar stīgas, nosakot, ja viņi ir vienāds, kļūst stuff no stīgām, un spēt atvērt failus pareizi. Tas ir daudz failu I / O. PSET tiešām nav tik slikti. Jūs esat gatavojas veikt Paskaties uz to, lejupielādēt to, un redzēt visu ķekars kodu. Neraizējieties, kods tu faktiski rakstīt nav slikti vispār. Ja kāds ir problēmas ar to servera, nāc mani redzēt pēc iedaļas. Atvainoties vēlreiz ne celt Candy Halloween. Es nezinu, kas bija noticis ar mani. Bet mums būs dubultā Candy nākamajā reizē. Un labu veiksmi jūsu PSET šonedēļ. Jā.