ANDI Peng: Mi vagyunk szinte végig a psets. Sőt, mi vagyunk a többség legnehezebb psets. Így vagyunk valójában csak fog fajta szél a következő hetekben. Fogunk kezdeni beszélni a végső projektek, események jön A következő néhány hétben. És az élet lesz a szél. Így nem túl sok ma. Remélhetőleg valóban szellő a napirendet ma, majd lesz itt néhány szabad ideje. Azt is szeretnék bocsánatot kérni a hiányzó édességet ma. Nem tudom, miért. De a hét vezető Halloween, azt felejtsd el cukorkát. Szóval én valójában csak egy hatalmas csalódás, hogy most rögtön. Mert én szó szerint emlékszem édességet minden egyes osztályban, de Halloween. De a jövő héten, hozok duplája a cukorka pótolni, hogy minden az Ön számára. Nagyszerű lesz. Szóval van egy pár bejelentések kapcsolatos bizonyos ütemező. Van néhány ütemezési problémák. Akkor fogunk lépni beszélni, mi a neve chmod. Fogunk beszélni Gyorsan TCP / IP HTTP. És akkor mi lesz kód A Saját weboldal segítségével HTML és CSS. És akkor én tényleg hagyjuk talán mint 20 perc beszélni pset6. Mivel pset6 valójában egy csomó dolog, hogy mi már láttam korábban, de szerettem volna frissíteni néhány ilyen fogalmak valamint tanítani egy pár új funkciót. Hűvös. Tehát először, szívesen vissza a szünetből. Remélem szünetet élvezetes volt. Vajon tettél szünetet? Közönség: New Yorkba ment. ANDI Peng: Ön elment New Yorkba? Azt hiszem, a fele iskolánk New Yorkba ment. Rendben van. Töltöttem a legtöbb az én szünet mozgásszegény ágyban Netflixing. És ez volt a jó idő. De most vissza, vissza ülésen, vissza a hinta a dolgok. Van egy PSET miatt pénteken délben. Azt hiszem, hogy már felvette a kvíz, igen? Tehát bárki más, aki Nem volt a vetélkedők, kérlek, gyere és kap a vetélkedők tőlem végén a szakaszt. Vagy nyomon cserben az egyetemen. Meglesz velem valahova. A projekt végső pre-javaslatot is. Tehát azok számára, akik még soha nem vettek Ebben az osztályban előtt, a kidolgozásában elért a CS50 nagyon is csúcsosodott ki ezt a grand projekt, hogy a diákok javaslatot. És a pályázat előtti, Csak egy általános képet amit az ember érdemes csinálni azok projekt, amely elképzelés miatt, hétfő Jövő hétfőn délben. Szóval elég sok, David azt hiszem lesz beszélnek többet erről előadást Ha még nem tette meg. És van egy szilárd oldal honlapunkon elmagyarázza valamennyi követelményt a projekt. De alapvetően, vedd bármilyen témában, hogy már érdekelt az egész idejét itt CS, legyen az játék, vagy tervezési vagy videó, vagy ilyesmi. És akkor tényleg ilyen Most alkalmazni néhány órán hogy megtanultuk itt CS50-- hi, welcome-- hogy elég sok lebonyolítása a végleges projekt, amelyet választott. Minden, ami miatt a hétfő Csak egy rövid beszéd e-mailben Nekem, gyors mondat, mint, hé, Andi, Én nagyon érdekel tervezése egy játék, hogy működik ez az iOS. Hűvös. Csak hadd a rövid kezdeti ötletek a végleges projekt. És fogunk beszélni keresztül-e vagy sem hogy valójában egy jó ötlet vagy sem, ha ez megvalósítható ötlet vagy sem. De csak a pályázat előtti annak köszönhető, jövő hétfőn. pset6, kedves web--, hogy rossz. Pset7? pset6? Ez pset6, ugye? pset6, web szerver, annak köszönhető, Pénteken délben a nap végén. Munkaidőben újra normálisan hétfőtől csütörtökig 8:00-11:00 ezen a héten. Azt hiszem Commons A következő három éjszaka. Hűvös. Mielőtt kellett anyagba, csinál akárki bármilyen kérdése van, viccek, történetek? Mit csináltál az őszi szünetben? Közönség: Mit tegyek? ANDI Peng: már ez régen tényleg. Christabel New Yorkba ment. Én itt maradt, és Netflixed. Közönség: Ó, igen itt voltam. ANDI Peng: Ó, oké. Közönség: Nem emlékszem mi pontosan. ANDI Peng: Ez rendben van. Közönség: Netflixing valószínűleg. ANDI Peng: Netflixing. Igen, ez egy jó ideje. OKÉ. Minden rendben. Bármilyen kérdése előtt mi ugrik be anyagot? Is, meg fogunk próbálni, hogy sebessége révén részén ma, Nem túl sok fedezésére. És remélhetőleg, mi lesz itt egy kicsit korai. Sajnálom, hogy nem cukorka, szintén. Én egy napot különösen a Halloween. Minden rendben. Hűvös. Mi is így fogjuk kezdeni beszélni parancssori argumentum nevű chmod. chmod minden ez csak egy Unix rendszer hívja végzett a parancssorból megváltoztatni jogosultságokat. Így például, mi már Az összes ütközött egy oldalon mint ez valószínűleg valamikor életünk hosszát, hogy az internet használati, ahol a web szerver megadta nekünk a hiba tilos. Nem jogod, bla, bla, bla, ezen a szerveren. Minden, ami valójában azt jelenti, az, hogy a jogosultságokat tapadt, hogy bármilyen oldal, amit próbál hozzáférni nem nyitott meg. Szóval elég sok, chmod az a mód, ahogyan tudjuk módosítani azokat a rendszer engedélyekkel hogy mindenki, a felhasználó, a csoport, vagy a világon, vagy bármely ezek kombinációja hozzáférés hogy bizonyos fájlokat, könyvtárak, semmi igazán, bármilyen rendszer egy operációs rendszer. Tehát, ha valamelyik srácok számítógépek ha úgy érzi, mint a következő velem együtt ma, Teljesen nyugodtan írd dolgokat ban. Ha nem, akkor csak lógni. Így fogok, hogy ténylegesen húzza az én terminál most. Így a parancs futtatásához chmod, vagy legalább csak felsorolni az engedélyeket a fájlmappában mindössze ls-l. Mint látható, egy csomó cucc bukkan fel amelyek nagy része Fontos számunkra a A bal oldali itt. Látjátok egy csomó rs, ws, 1 /. Igen. Ezek lényegében csak az összes fájl jogosultságok megmagyarázni, amit egyes könyvtárak és a fájlokból a rendszer van. Szóval menjünk vissza A power point itt. Tehát amellett, hogy a fájlnevek a srácok láthatjuk a jobb oldalon, keresünk, hogy lényegében Csak a bal oldali oszlopból. Tehát mellett csak A fájlnevek, mi Láthatjuk a fájlok jogosultságai, a tulajdonos-csoport, a csoport neve, a dátum hogy a fájl utolsó módosított, satöbbi. Láthatjuk egy csomó dolgot a chmod. Tehát az is, hogy azt olvassuk, hogy chmod Az első betű is elég sok figyelmen kívül hagyni szempontjából olvasási engedélyekkel. Az első levél csak azt mondja nekünk, hogy mi típusú rendszer vagyunk elérésével. d, ebben az esetben, egy mappát vagy könyvtárat. Tehát tudjuk, hogy jelenleg én munkaterület Hetedik szakasz volt a könyvtár. És akkor látni három triádok, lényegében csak hármasával három karakter. És akkor gondolom minden, mint egy kicsit. Úgyhogy csak három három bit, kilenc bitet összesen. Bánsz velük hármas csoportokban. Tehát az első csoport három jelentése Mindig a felhasználói jogosultságokat. A második csoport három van Mindig a csoport engedélyeket. És a harmadik sor három Mindig, mint a világ, A mindenütt jogosultságokat. Szóval azt hiszem, a könnyebbik kérdés, hogy mi a a különbség a felhasználó és a csoport. A fő különbség között a felhasználók és csoportok az, hogy a felhasználó csak akkor személyesen elérésével bármi is legyen most. A csoport lehet, ha több felhasználók egy számítógép, például. Mindegyikük lehet kezelni, mint egy csoport. És akkor a világ Csak a világ, mindenki. Tehát láthatjuk majd, hogy hogyan tudjuk módosíthatja a különböző engedélyeket. Szóval elég sok, mi vagyunk lesz még összpontosítani a részét a bal oldalon, ahol A könyvtár CS50 látjuk drwx, ahol r csak azt jelenti, hogy ez olvasható. A tömeg csak azt jelenti, hogy írható. És akkor az x csak azt jelenti, hogy futtatható. Azt hihetnénk, hogy ez a fajta Az nincs értelme. Meg kell e. De x valójában milyen működik egy kicsit jobban, mert akkor emlékszem, hogy jobb. Tehát a három dolog, amit tehet, akkor vagy olvasni egy fájlt, akkor van engedélye levelet fájlt, vagy ha lehet jogosultsága hogy végre egy fájlt. És így az is, hogy mi valójában reprezentálják a biteket a számok 4, 2, és 1. Tehát bármi, ami olvasható az által képviselt száma 4. Bármi, ami írható képviseli 2. És bármit, ami a futtatható által képviselt 1. Tehát ebben az értelemben, azt is jelentenek ezek a numbers-- hi, welcome, más-más módon. Bocsánat. Mielőtt mindenki, megyek elnézést mindenki nevében belépő osztály most. Elfelejtettem édességet ma. Sajnálom vagyok kudarc Ezen a héten a Halloween. Hozok duplája édességet legközelebb pótolni azt. De egyébként, bocs erről srácok, sajnálom. Tehát az is, hogy mi is valójában bemenet A parancs az érv is tehetünk chmod csoport perjel engedélyeket, ahol a csoport mindössze bármi csoport próbálunk változtatni. És a jogosultságok amit csak akarunk adni rá. Így például, a plusz hozzáteszi engedélyeket, és a kivonás enyhítette az engedélyeket. És a fajta csoport van a mi egy minden, u felhasználók számára, g-csoportok, vagy o mások számára. Ez egy kicsit elvont most. De megyünk át pár példa Csak az ezt igazoló gyorsan. Mindenki jó ezen csúszda, így tudok lépni? Hűvös. Így például, rwx. Mielőtt beszélünk, amit jelképez, Először mit rwx jelent? Ha látja, hogy ez a bizonyos fájl jogosultságait rwx, mit jelent a személy lehet tudni csinálni? Közönség: Olvasás, olvasási és végrehajtási. ANDI Peng: Igen, pontosan. Elolvashatja írási és végrehajtási. Mivel mind a három azoknak karakterek vannak jelen. Tehát, ha megy előre, és beszélni erről szempontjából bit, A rwx is képviselteti magát, mint 700. Mert mint látható bármilyen Egyféle fájl könyvtár jogosultságokat, van három triádok. Ebben az esetben csak az első hármas van ott semmit. Tehát ebben az esetben, a r értéke 4, A w értéke 2, és az x értéke 1. Ha hozzá ezeket össze, ez 7. És így ha váltani ez kettes, ez 700. Mivel 7 az első triád. 0, nincs semmi jelen a második triád. És akkor nincs semmi jelen A harmadik hármas, úgy, hogy egy másik 0. Tehát abban az értelemben, egy csomó triádok leírható csak bitek, csak bináris is. Tehát 700 azt jelenti, hogy pontosan ugyanaz, mint a rwx ------ vonatkozó jogosultságok. Mindenki tisztában, hogy? Hűvös. És így chmod 111 adna amely engedélyeket a fájlt? Adni nektek egy pár másodperc átalakítani ezt. Ne feledje, az első triád a felhasználó számára. A második triád a csoport számára. És a harmadik triád mindenkinek. És így chmod 111 adna, amely típusú engedélyeket és kinek? Vegyünk egy pár másodperc alatt gondolkodni, és gyere vissza. Igen. Közönség: így mindenki végrehajtani. ANDI Peng: Ja, pontosan. Közönség: De senki nem tud írni és olvasni. ANDI Peng: És bátran elmagyarázni mindenkinek hogyan jutott erre a következtetésre. Közönség: Nos, a felhasználó számára, a csoport, és a világ, ez mind 1, amely a kód futtatható. ANDI Peng: Igen, pontosan. Tehát 1, ebben az esetben annyit tudunk hogy ez a futtatható kódot. Mivel az olvasás 4. Az írás 2. És a futtatható 1. Szóval van mind a három triádok 1, hogy azt jelenti, hogy a világ, hogy a felhasználó, és a csoport, ők mind végrehajtható. Mindenki jó ebben? OKÉ. És így a második út hogy mi is valójában írni ezt is te Lehet, hogy csak csinálni chmod egy plusz x. Egy: minden, vagy mindenkinek. A plusz azt jelenti, hogy engedélyeket. És akkor az x jelenti futtatható. Szóval van két parancs valójában megegyezik. Tehát, ha szeretné futtatni ez a terminál, te chmod 111, neve a könyvtárat vagy a fájlt. Vagy meg tudod csinálni chmod a plusz x, Nevét a könyvtár fájl. Ugyanaz, csak egy könnyebb út, talán néhány képviselni, vagy változás jogosultságokat. Mindenki rendben chmod mielőtt továbbmegyünk? Hűvös. Tehát most megyünk fejét egy Néhány diák nagyon elvont fogalmak hogy én vagyok elég sokat fog szél a. És ez teljesen rendben van, ha Nem értem mindent. Még most is, még mindig nem igazán érteni mindent teljesen. De ez inkább kezd A legfelső szinten megértése Az, hogy néhány ezek a dolgok. Így fogunk beszélni Gyorsan a TCP / IP, ami csak Transmission Control Jegyzőkönyv perjel Internet Protocol. Visszahívás előadás, David, mondott megtanít Az például amikor végigmentünk A jegyzetek egy borítékban Akár tetszik a tetején az előadóterem? Tehát a jogi egyetemre nézőtér David bizonyította lényegében hogyan TCP / IP működik az értelemben, hogy az összes azt van egy eszköz arra, hogy az adatok átvettem az egész szerveren vagy az interneten. Azaz, például a boríték és az üzenetet, a felhasználó a végén látta, hogy, jaj, én szükséges fogadására négy csomag információkat. De valójában csak kapott három. Ez azt jelenti, meg kell, hogy hiányzik egy. És egy nem szállított. És így a TCP / IP az internet, révén a számítógép és a szerver, nem pontosan ugyanaz a dolog. Csak annyit tesz, adjon meg egy melynek keretében egy elveszett adatok csomagokat lehet rossz néven, és kapott. Mint az interneten, ha akarsz a fájlok elérése online, vagy küldje fájlok hogy a barátod, vagy nézd meg a web böngészők, ezer és ezer Az milliárd és milliárd bájtok információk át milliszekundumonként. És ez nagyon, nagyon zavaró. És ez nagyon nehéz valóban tudja, mi lett küldve és mi nem küldött. És így a TCP / IP csak megadja átfogó keretet amelyben a web böngésző és a szerver lehet egyfajta kommunikációt egymással, csak győződjön meg arról, hogy a csomag Itt mindent megtalál, és semmi sem elveszett és az összes adatot, amit kért valójában megfelelően jelennek meg. Mindenki az OK gombot, hogy csak nagyon Röviden magas szintű érti? Hűvös. Így aztán megyünk mozgatni figyelembe beszélünk HTTP-re, csak Hypertext Transfer Protocol. HTTP, mind ez van, amit bármelyik oldal vagy fájl megnyitásakor a honlapon, a kiszolgáló HTTP státusz kódot választ A kérelem ügyelve arra, hogy vagy, ó, ez a kérés ment keresztül. És minden a megfelelően jelennek meg. Vagy, ó, nem, 404. Valami elromlott. Ó, én nem képes megjeleníteni. Minden ez, hogy bármit akarsz hozzáférést, használja a felhasználó megpróbálja elérni, A internet-- csak megbizonyosodtunk hogy meg sem kell sikeresen érhető bármi is volt, vagy nem sikeresen belépett bármi is volt az. És így a HTTP státusz kód csak nyújt Önnek egy eszközt, hogy képes tudni, hogy vagy nem volt sikeres, vagy sem. Így például, egy példa kérést. Itt látható, hogy általában jellemzően négy sort. Van egy GET HTTP 1.1, amely mindössze A módszer kérés URL protokoll változata, a mező nevét, és a mező értékét. Tehát nincs szükség, hogy teljesen memorizálni itt semmit. Csak ilyen ismerkedjen magát, hogy ezek néznek. Ebben a példában, a módszer kérés URL mindössze bármi kérés Ön által küldött a szerver. Mint, hé, szerver, nagyon szeretnék hozzáférést bla, bla, bla, HTTP oldalon. A protokoll verzió csak bármi változata a gazda vagy a szerver használja az információkhoz való hozzáférés. A mező neve a honlapon, vagy a URL, hogy akarsz elérni, Ebben az esetben, www.apple.com. És a mező értéke Csak jellemzően nevet, értéket. És ez lehet bármilyen fajta kombináció betűk és számok, vagy bármi. Tehát egy tipikus kérelmet, így amit a számítógép ténylegesen küld a szervernek, amely azt mondja, hé, Tudja, mit kell ez jelenik meg, ez a fajta kérés hogy valóban megkapják. Egy példa válasz, amit a szerver küld vissza hozzád lenne nagyjából ugyanaz a dolog, kivéve egy állapot kódot a tetején. Tehát 200, 2 0 0 mindig A státusz kódot az OK gombra. Mint, OK, ezt a kérést ment keresztül. Te voltál képes hozzáférni mindent helyesen. Az élet jó. Az élet szép. Minden teljesen jó. És így ez csak mondja meg a böngészőnek, és a szerver, hé, minden jó. Megvan minden olyan információt, amire szükségem van. Hűvös. De a probléma néha probléma merül fel ha have-- tart Azt hiszem, Én beszéltem ismétli. Van kevésbé jó válaszokat. Így például 404 az oldal nem található. Néha van Tiltott hozzáférést. Van számos más állapot kódokat, hogy én vagyok Biztosan minden látta, ha éppen próbál kutatni az interneten. És a böngésző ad Az, nem, nem tud hozzáférni. És te, mint, nos, szar. Tehát csak nagyjából, van néhány nagyon gyakori állapot kódokat. Talán ismerkedjen melyekkel ezek. A legviccesebb az egyik, hogy Azt hiszem, amit valaha hallottam of-- ha történetesen felnéz mindet Online, valamilyen oknál fogva ott van valójában egy igazi status code nevezett 418 vagyok egy teáskannát. Googled ahol a ered ez volt származó. És úgy tűnik, egy április elsejei Napon két évtizeddel ezelőtt, valaki azt hitte, hogy vidám hogy hozzon létre egy új státusz kódot úgynevezett 418 Én egy teáskannát. Jogszerűen, a neve ennek a kód hívják vagyok egy teáskannát. Emlékszem, mi az oldal van, hogy megy valójában, hogy ez a kijelző. De úgy tűnik, akkor valóban szerezni státusz kódot vagyok egy teáskannát valahogy keresztül csinál valamit. Szóval van több száz, több száz státusz kódok. Némelyikük még több értelemben, mint mások. De elég sok csak ismerkedjen magát a leggyakoribbak. A kért személy test Rövid, vaskos, látszólag. Így néha több ijesztő hibák, mint én vagyok teáskannát. De ez az egyik, hogy azt hiszem, Ön milyen remélem, hogy elérje. De nem hiszem, hogy így lesz. Mindenki jó, csak állapot kódok, kéréseket, folyamatok, így arról információt kézbesítik rendesen? Tehát most megyünk átmenet be egy szórakoztató része részén ma, ahol beszélgetünk egy kicsit a HTML. HTML, minden van Hiperszöveges Markup Language. Ez csak a köznyelv létrehozásához használt összes webes oldalak az interneten. Tehát olyan weboldalra, mi kedvenc weboldal? Mi a kedvenc weboldal? Közönség: [hallható]. ANDI Peng: Sajnáljuk? Közönség: Tumblr. ANDI Peng: Tumblr. Tehát Tumblr van írva HTML. És így lesz valóban megy keresztül, és játék körül ezeket a dolgokat később. Elég sok mindent meg meg kell tanulni, tudni, írjunk HTML akkor talán Csak a Google az interneten. HTML, ez nem egy program, mint a C- ahol lehet létrehozni változók, és nem cool dolog vele. Ez inkább csak, ó, ez hogyan szeretné a dolgokat jelennek meg a honlapon. És én csak megy, hogy azt az. És ez meg fog stílusszabályt. Tehát HTML, bizonyos értelemben, ez csak, mint A formázás vagy sablon nyelven. Ez egy sokkal könnyebb. Ez sokkal könnyebb megtanulni, sokkal könnyebb írni, mint a tipikus programozási nyelvet, nagyon egyszerű, nagyon felhasználóbarát megközelíthető és barátságos. Úgyhogy valóban fog játszani körüli, megírjam a saját oldalak ma. De mielőtt elkezdenénk, csak azt, hogy megy át néhány rövid legjobb gyakorlatokat. Mivel a HTML olyan könnyű nyelv és mert még ha nem egy pár dolgot rosszul, Talán nem mindig veszi észre, azt akarjuk, hogy győződjön meg arról, hogy mi vagyunk valójában azért, hogy a legjobb gyakorlatok hogy győződjön meg arról, hogy a dolgok, hogy lehet majd körül, de nem mindig megy, hogy nem megy a jobb győződjön meg arról, hogy ők minimalizálni. Szóval elég sok, győződjön meg róla, A záró minden tag amikor írsz HTML-ben. Ha megnyit egy test, győződjön meg róla, bezárná a holttestet. Azt akarod, hogy megbizonyosodjon arról, hogy a weboldal érvényesíti segítségével nevezzük a W3-érvényesítő. Tudod csak a Google, hogy az online, és van egy linket hozzá. És akkor azt szeretnénk, hogy külön HTML, amelyek az Ön jelölőnyelv az Ön stílusát, amely a CSS nyelv, David Kimutattuk, hogy mi is fog játszani egy kicsit előadást. Hűvös. Szóval, amikor csak akar futtatni HTML a CS50 készüléket, fogunk futni a nevű program apache, amely az összes, hanem csak beépített web szerver, hogy mindenki a CS50 hozzáférése van. Mi ezt apache50 csak azért, mert szeretném felhívni minden 50 CS50. Tehát az is, hogy indítsa el a CS50 web kiszolgáló beírja a parancsot vonal apache50 indul dot. És ha azt szeretnénk, hogy vége minden ideje, akkor apache50 véget nem dot. És akkor csak nyomd meg az Entert. És meg kell cím akár itt hamarosan. Aha. Szóval én csak fog, hogy gyorsan menjen át egy példa egy nagyon rövid weboldalt. És fogunk költeni mint 10, 15 perc játszik körül írásban saját weboldalakat. OKÉ. Tehát itt a IDE-- lehet mindenki látja ezt? Nem igazán. Itt fogom nagyítani. Én épp most van ez a rövid sablon Itt semmi valóban benne. Mi csak megy, hogy gyorsan írjon HTML program, amelyben mi csak köszönjön a világon. Tehát ugyanaz, mint a C-ben, most mi vagyunk csak fog csinálni a HTML. Akar valaki valójában csak próbálja, hogy nekem az első dolog, amit kellene helyeznie egy HTML dokumentum? Igen. Közönség: A zárójelben [hallhatatlan]. ANDI Peng: Ja. Tehát valami, ami nagyon egyedi, hogy HTML hogy általában hagyományosan nem találkozik más parancs vonal szintű programozási nyelvek az, hogy mi valójában a adja meg a fájl típusát hogy ez lesz a tetején a kódot. Tehát ebben instance-- azt hiszem, hogy ez a helyes parancsot, ugye? Aha. A legfelső, csak azt, hogy többek között bumm DOCTYPE html zárójelben csak hogy elmondja a számítógép, hé, nézd meg. És HTML dokumentum jön. És akkor hogyan akarunk hogy elindul a fájlt? Ha mi csak szeretnénk köszönni, hogy egy weboldal, amely azt mondja, hogy hello világ, hogyan megyünk kb épület ez? Igazából, térjünk rá a Google. És mi is valójában ezt. Aha. Ott vagyunk. Szóval HTML. Mint látható, a böngészőm valójában automatikusan styling ezt nekem. Ugyanaz, mint a C, ha egy nyitott zárójel, A böngésző automatikusan hozzáteszi szoros kapcsos zárójel. Szerencsére mi IDE szeret ezt nekünk is. Tehát most már tudjuk milyen típusú az elején egy címke, és ez lesz mindig mondják, hogy emlékszem, hogy írja be a végén a címke. Azt hiszem, ez kell tőkésíteni. És akkor szeretné adni, mindig, egy fejet, amely a cím. Csak azt akarjuk, hogy talán hívni ezt hello, majd testet. És már megy is. Hogy valójában mi HTML dokumentum. Tehát az is, hogy a HTML dokumentumban mindig stílusú in-- ugyanezt A int main semmis. Ön azt szeretné, hogy HTML nyílt és záró tag a tetején és alján a kódot. Azt szeretnénk, hogy egy fej belsejében amely tartalmazza a címet, csak amit fog megjeleníteni a lapot a webes oldalon, majd a test belsejében, amely ténylegesen megjeleníteni a tartalmat Az, amit csak akarsz. Tehát, ha akarta a ténylegesen megtett Ennek fogok kicsinyítéshez. Akkor valóban elkezd apache50 indul dot. Hűvös. És így, mint látható, most Ez a kapcsolat már felbukkant. Azt mondja, a helyszín most elérhető néhány alábbi linkre. Tehát minden IDE van done-- Nem IDE, sorry-- igen, mi IDE tett, hozzon létre egy web Link amelyen minden honlapunk érhető el a szerveren. Szóval vessünk egy pillantást ide. Nézzük kattintson erre, menj hello.html. És látod, egy nagyon egyszerű weboldalt hello world. OKÉ. Mi történt valójában csak Van everyone-- igen, mi a helyzet? Közönség: Van egy alapvető kérdés. ANDI Peng: Ja. Közönség: Hogyan menti A fájl HTML? ANDI Peng: Igen. Tehát, ha én is hozzon létre egy új fájlt, ha mégis új fájlt, Untittle, ha mégis, section.html, boom, ez minden, amit tenned kell. Közönség: [hallható]? ANDI Peng: Nem. Közönség: [hallható]. ANDI Peng: Nem. Közönség: [hallható]. ANDI Peng: Igen. Elég sok, a kiterjesztést A fájl belsejében az IDE, hogy megmondja a számítógépnek, hogy jelzi a böngésző, hé, nézd meg. Ez lesz kód írt ezen a nyelven. Így például, a Microsoft Szó, mi mindent megtesz a Word dokumentumokat végződnie, mit kiterjesztése? .doc vagy .docx, ugye? Minden, ami nem is adja meg, hogy Az operációs rendszer, hé, van egy Word dokumentumot jön. Nyisd ki a Word. Ugyanaz a PDF-fájlokat. Úgy tudja, ó, szükségem van megnyitni ezt a fájlt Adobe Reader vagy Adobe Acrobat. És így kiterjesztések működtetni a ugyanúgy, mint a számítógép. Ha megadod a kódot oldal meg kell nevezni a HTML, akkor tudja, Ó, megvan HTML kódot. Megyek kezelni, mint html kódot. Szóval ez szuper okos ebben az értelemben. Tehát mindenki, vessünk, mint 10 perc és csak létre a saját honlapján. Adjuk hozzá a szép dolgokat. Nyugodtan mondani, amit akarsz. Csak azt akarom, hogy megbizonyosodjon arról, hogy mindenki szerver fut rendesen Mielőtt ingyen van a PSET. Mert ha a szerverek nem fut a PSET, hogy lesz nagyon, nagyon rossz. Csak megyek, hogy lebegnek, és látni, amit mindenki ezen dolgozik. Mi újság? Közönség: Én csak bekapcsoltam a számítógépet. ANDI Peng: Ez rendben van. Közönség: [hallható]. ANDI Peng: Csak az IDE. Igen. Közönség: [hallható]. ANDI Peng: Nem baj. Közönség: [hallható]. ANDI Peng: Teljesen rendben. Mindenki hozzáférés web szerver OK? A apache50 futó OK? Azt hiszem, néhány a többi rész, amit volt kérdés az emberek nem hogy képes elérni a szervert. Igen. Szóval csak fuss apache50 térben indul tér időszakban. Közönség: [hallható]. ANDI Peng: Ja. Jó? Közönség: [hallható]. ANDI Peng: Ó, oké. Szóval kéne egy helyet. Tehát apache50-- Közönség: én. ANDI Peng: --start helyet. Közönség: Ó, teret dot. ANDI Peng: Ja, teret dot. Nesze. Így aztán, ha van egy HTML oldal teremtett, akkor mehet egyenesen hogy a link, hogy meghatározza. És ha kell, képes hozzáférni. Mindenki volt képes hozzáférhet a weboldalakat OK? Közönség: [hallható]. ANDI Peng: Ó, ez rendben van. Közönség: [hallható]. ANDI Peng: Igen. Azt hiszem, akkor valóban nyitni ez a böngészőből, a böngésző és nem csak az IDE böngészőt. Igen, azt hiszem, ha másolja be. Közönség: És akkor hogyan kikapcsolni? [NEM HALLHATÓ] ANDI Peng: Igen, te apache50 megállítani nélkül időszakban. Aha. Közönség: [hallható]. ANDI Peng: Mivel nincs idő. Igen. Ott vagyunk. Aha. Hozunk létre a saját weboldalakat. Közönség: Ó, király. ANDI Peng: Igen. Közönség: Lenne egy kérdésem. Tehát apache 50-- ANDI Peng: 50, igen. Közönség: [hallható]. ANDI Peng: Mi? Hogy furcsa. Lásd, hogy kedves volt a kérdés ami történik előtt. OKÉ. Láss szakasz után. Mert mi van némi kérdéseket a szerver. És azt szeretnénk, hogy győződjön arról, hogy a szerver futás megkezdése előtt PSET. Mert szükséged lesz rá. Igen. Van valaki más, hogy nem volt tudja, hogy a szerver kezdeni? Azoknak, akik szeretnének felvenni További stílust a weboldalakat, mi is valójában csinálni, amit Dávid tette előadás is, ami egy újabb stílus lemez, amely egy pont CSS, Cascading Style Sheet, és valójában csak add meg. Így például, amit csak teremtett nagyjából majdnem pontosan ugyanaz Dávid tette előadást. Akkor nagyjából csak nem test. Van, amit az úgynevezett tagek, amelyben akkor lehet alkalmazni IDE bármi részén akarsz belül a aktuális HTML oldal. Így a szervezet az oldalon tehetünk szöveg igazítása központ. És akkor én kreatív Egy tag úgynevezett top belül amelynek akarom ezeket a dolgokat, hogy megtörténhet, rendeljünk egy nagyobb pixelméret A font. Szeretném, ha a font súlyú, hogy merész. És azt akarom, a szín kék lesz, csak önkényes értékeket, hogy úgy döntöttem, hogy válasszon. Én létrehozhat egy másik tag úgynevezett közepén. Betűméret, hogy ez egy kicsit kisebb. És akkor létrehozhat egy másik tag úgynevezett alulról, ahol szeretnék a betűméretet hogy még kisebb is. És így elég sok ez csak példa A forráskód vagy forrás stíluslapok hogy nagyon könnyű, hogy csak a Google. Ha azt mondod, ó, szeretném, ha a font hogy dőlt betűvel és sötétzöld, akkor talán a Google, majd megmondja A megfelelő címkéket, vagy azonosítók létrehozására. És így az is, hogy ténylegesen ilyen van, ez egy HTML dokumentumban vagy használja azt minden van hogy nem itt élén adjunk hozzá egy linket a stíluslapot. Így csak hivatkozzunk az egyenlők amit a neve a stíluslap van. És akkor a kapcsolat egy stíluslapot. Tehát belül minden HTML dokumentumban, amíg ahogy tartalmazzák ezt a pontot CSS lapot, akkor képesnek kell lennie arra, hogy hozzáférést és az említett tulajdonságokkal ott. Így például, itt Épp most hozzon létre egy másik példán keresztül. Ez örvendetes, hogy CS50 részén Kedden 2:00-03:30 velem. És akkor már hozzá egy szép kép, mi potenciálisan képesnek kell lennie arra, hogy látni. Tehát, ha vess egy pillantást ide, ha elmész style.html, létrehoztunk egy weboldalt kiscicák. Mivel cica félelmetes. Így hozzá egy képet, csak img src link. Elég sokat, ha van bármilyen funkciót szeretné felvenni a website-- így mondjuk, a felvenni kívánt menü vagy egy kereső sávot vagy hasonló Egy image-- csak a Google, hogyan kell csinálni. És csak puff ebben a formátumban. És ha csak szép sok csak add meg. Ez nagyon, nagyon egyszerű. Hozunk létre a saját weboldalakat most. Ha akarod-- Közönség: [hallható] ANDI Peng: Sajnáljuk? Közönség: [hallható]. ANDI Peng: Ó, a div csak egy részlege mondja nekem, hogy, jaj, én egy bizonyos része úgynevezett közepén, ahol én alkalmazása én CSS-címkét, majd én más részlege az alján. Ennyi mondja neked. Mert ez szép tartani rendet annak érdekében, így a program tudja, hogy pontosan hogyan működik. És hiszem, tudom másolni be ezt az én aktuális böngészőben is. Hogy legyen finom. Igen. Hurrá. Tehát, ha mindenki azt akarja, hogy csak próbáld honlap elkészítésére, elvisszük még két-három percig. Csak azt akarom, hogy győződjön meg arról, mindenki szerver fut és mindenkinek van egy ötlete, hogyan kell csinálni. Ha akartok vegye ki a számítógépet. Még mindig nem működik? Közönség: Én csak [hallhatatlan]. ANDI Peng: Talán próbálja frissíteni 50 is. Igen. Közönség: [hallható]. ANDI Peng: Igen. Tehát az is, hogy indítson új webszerver az IDE mindössze do apache50 helyet Start helyet dot. Csak azt akartam, hogy győződjön meg arról, mindenki szerver fut az OK gombra. Közönség: Itt, a terminálban? ANDI Peng: Igen. Közönség: [hallható]. ANDI Peng: Apache. Igazából, azt hiszem, te futás már valamit. Ja, te tényleg fut egy másik szerveren. Ja, te jó. Mindaddig, amíg ez működik, akkor OK. Közönség: OK. ANDI Peng: Van két módon futtatható szerverek. Tehát amíg az egyik módja működik, minden rendben. Elvisszük egy perc csak azért, hogy a fajta befejezni Az utolsó simításokat bármilyen weboldal srácok akarta tenni. Mindenki dolgozik az úton? Mindenki szerverek futás mellett a tiéd? Majd kitalálni. És HTML viszonylag egyszerű. Szóval azt hiszem, minden jó. Igen. Visszajövök. Közönség: [hallható]. ANDI Peng: OK. Közönség: Tehát csak feltöltése elkezdődött. ANDI Peng: Semmi gond. Tehát HTML, van forráskódot lesz online szakasz után. Továbbá, David egy egész csomó online is. Csak ilyen áttanulmányozni, látom, hogy a HTML oldalak vannak írva. Ez elég egyszerű. Bármi, amit nem tudom, te szép sok csak a Google és te jó. Csak azt akarom, hogy megbizonyosodjon arról, hogy A szerver fut. Közönség: Vajon ezt gyakran? ANDI Peng: Soha nem történt velem. Nem tudtam, hogy abba akár hibernált. Közönség: [hallható]. ANDI Peng: Azt hiszem, everyone-- én még soha nem hibernált előtt. És nem tudom, miért. Ez furcsa. Közönség: [hallható]. ANDI Peng: a tiéd hibernált? Közönség: [hallható]. ANDI Peng: Igen. Közönség: Nem baj. Tehát, ha nyitva van. ANDI Peng: OK. Majd foglalkozni néhány szerver kérdések szakasz után. Akkor legyen finom. Bár, azt szeretnénk, hogy győződjön meg róla, kérni őket oldani, mielőtt elmész. Mert ha a szerver nem fut, akkor te Nem lesz képes megtenni a PSET, mint bármely részén a PSET. Tehát azt szeretnénk, hogy győződjön meg arról, Hogy ez működik. Hűvös. Minden rendben. Mondjon búcsút kiscicák. Töltöttem egy hosszú ideje keres hogy cica képet tegye. Szóval, egyébként. Közönség: [hallható]. ANDI Peng: Sajnáljuk? Közönség: [hallható]. ANDI Peng: Azt hiszem, ez a honlapon. Mint a spec? Közönség: [hallható]. Azt hiszem, a spec csak online héten hét. Azt hiszem, ezt hívják pset6, sőt Bár mi vagyunk a héten hét, amely egy kicsit számítástechnika. Közönség: De úgy értem, ha meg akarom nézni at-- ha szeretnénk, hogy húzza fel a változata A weboldal a mi Sever? Szóval, mint server.c a PSET, ugye? Ha azt szeretnénk, hogy nézd meg ezt, mint például, hogy lekéri? ANDI Peng: Ó, így valójában A PSET, minden, amit csinálsz Itt van implementing-- itt, Megyek át ezt röviden. Szóval mindenki számára, ami csak ütött fejezetben, a srácok a szerencse. Nagyon kevés anyag hogy valóban fedezi ma. Én csak fogja tölteni a következő 20 perc megy át PSET segítséget. Mert van néhány hasznos funkciókat, amelyek segítenek az életed. És remélhetőleg, leszünk Az itt, mint 20 perc alatt. OKÉ. Tehát pset7 rossz. Annak ellenére, hogy mi vagyunk a héten Hét, ez valójában pset6. Majd változtatni. Minden, amit csinálnak pset6 teremt egy webszerver. Ez úgy hangzik, szuper félelmetes. És különösen azok számára, , akik már megnézte a forgalmazás kódot, van egy csomó kódot, egy csomó kód. De ez teljesen rendben. Mivel a tetves kavicsos része valójában létre A szerver végzi minket. Minden, amit tényleg megkérdezte hogy nem ebben a PSET csak hogy némi RSTART A fájl I / O. Ez valójában mint a meglehetősen egyszerű. Tehát, ha az első letölthető hogy--, akik Itt valójában már letöltött A PSET és vett egy pillantást? Minden rendben. Igen. Van olyan, mint 500 sornyi kódot hogy fogsz lenni, mint, mi történik? És ez teljesen rendben van. Győződjön meg róla, nézni a séta-átvezetéseket. Mert Dávid és-- Nem tudom. Nem hiszem, hogy ez Zamyla-k, ez. De azt hiszem, valami más gyalog-átvezetéseket meglehetősen Hasznos szempontjából Csak hogy tudd, mi folyik belül a kódot. És ez teljesen rendben van. Mivel a négy funkció, hogy te kérték, hogy végre ténylegesen nulla köze a tényleges szerver. Mindössze annyit kell tennie, hogy csak elemzés különböző húrok, kereső segítségével húrok, hogy megbizonyosodjon arról, a dolgok csinálnak hogy mit kéne csinálnia. Tehát ebben az értelemben, vannak néhány nagyon-nagyon hasznos funkció, különösen a húr manipuláció, hogy mindannyian megy át, hogy azt gondoltam nagyon hasznosak lehetnek a srácok tanulni, mielőtt a PSET. És ezek mind benne az Ön string.h könyvtárban. Ott talán több hasznos funkciók már nem szerepel itt, mert vagy soha nem használja őket, vagy talán csak nem tudtam, hogy léteznek. Nyugodtan lehet átnézni hallgato.h. Mert ott lesz egy csomó funkciók, amelyek nagyon hasznosak. Így a hat, hogy használom a legtöbbet az én PSET amikor megcsináltam a múlt héten voltak strtok, strchr, strrcher, strstr, strcasecmp, és strcpy. És így az utolsó két tűnhet elég ismerős, hogy a legtöbb van. Str esetben összehasonlítani, annyit tesz, hasonlítsa össze húrok ellenőrizze azokat az egyenlőség, beleértve esetén. És strcpy csak másolatok egy húr egy tárolóba. És így a két lássék nagyon ismerős srácok ezen a ponton. Mert mi már használta őket sok, különösen az utolsó psets. De az első négy talán Ön még nem láttam eddig. De fogok csak sétálni rajtuk keresztül. Mert ők fognak tenni az életeteket Nagyon, nagyon könnyű for-- nem könnyű, de sokkal egyszerűbb a közelgő PSET. OKÉ. Tehát char * strtok, ez a funkció meghatározás erre a funkcióra foglalt belül a húr, h könyvtár. Ha az előírtnál egy bemenetére char * húr, amely csak egy húr, vagy állandó char * deliminator, delim rövid, Az összes csinál megszegi a nagyobb string egy sor, amit úgy hívunk zsetonok elválasztva egy bizonyos értéket. Tehát bizonyos értelemben, ha én lennék adni Ön section.7.php, ez egy húr. Szóval ez lenne, ha én is át e, mint az én str, én char * str, ha a deliminator volt dot, mindezt tenne a keresést a húr. És most először lát egy pont, ez csak visszatérni a mutató az utolsó token talált a húr, mielőtt ez. Tehát ez megy itt. És ez csak adj 7.php. És ha engem hívni a működni még egyszer, adna nekem csak a .php. És így az egész ezt a funkciót tesz bont a nagyobb húr kisebb húrok függően hogy mit keres. És így például a Ön felnéz funkció Ha azt szeretnénk, hogy nézd meg mi Bizonyos karakterek jött illetve, ha pontok történni vagy kiterjesztését történni, Ez a funkció lenne elég hasznos. Igen. Semmi gond. Ez mind be-- igen, mi a helyzet? Közönség: Tehát az első sorban, ha használta ezt a példát, mit tennénk szúrni, hogy? ANDI Peng: Igen. Akkor csak hívja a strtok húr vesszővel delim. És vonós egyenlő section.7.php. És akkor te delim lehet egyenlő mindössze dot. Közönség: OK. ANDI Peng: Igen. Csak úgy. Ezek a funkciók mind meglehetősen Hasonló amikor megyünk át rajtuk. Ők csak nem kicsit más dolog. De mindannyian fog hogy az életed sokkal könnyebb. Második funkció, ez olyan, mint szuper, szuper, szuper fontos, az the-- tartja magát. Hoppá. Strchr megkeresi az elsõ occurrence-- valóban, igen. Strchr a funkciót, hogy Én mindenképpen csak ment át. Így figyelmen kívül hagyja, amit mondtam Az első funkció. Ez tulajdonképpen az úgynevezett strchr. Tehát mi történt itt, ha kaptak egy karakterlánc char c, ez csak adni Ön bármit is volt. Igen. Így gondolok rá, mint str, amely egy string, és a chr char. Így csak annyit akar csinálni a keresési ha valamelyik karakter belül egy string. És ez így megkeresi az első előfordulása a karakter c a string str. Közönség: [hallható]. ANDI Peng: Ja. És akkor, ha nem találják ez, ez meg fog visszatérni NULL. Tehát valami, ami lesz nagyon hasznos srácok csinálnak a PSET Ha, mondjuk, amit keresett egy kiterjesztése, mint egy .docx egy Word- dokumentum vagy .pdf egy PDF dokumentum, akkor milyen használni, hogy néz ki Mert mindaz, utána Minden alkalommal, amikor megjelenik egy pont, ugye? És így elég sok, ha futni, hogy a funkció, ha NULL, akkor tudja, hogy ez Nem találják dot, ami azt jelenti, ez a egyértelműen nem érvényes fájl kiterjesztését. Vagy ha visszatér valamit, akkor tudod, ez meg fog visszatérni bármi van valójában a bővítés után. Tehát azok, akik nekilátott a keresési és feldolgozni, ez a függvény lesz szuper hasznos. Szóval tényleg lesz bizonyítani ezzel. Miért nem vagytok Írjunk olyan függvény bool mondat char * s hogy Csak true, ha s egy mondat és egyébként false. Szóval tipp, fogsz hogy valószínűleg használni strchr. Vagy csak keresni a karakterlánc egy bizonyos karakter. És így egy mondatban, mi választja el a mondat egy nem mondat, milyen konkrét karaktert? Közönség: Egy helyet. ANDI Peng: Egy helyet, igaz? És így mit is valószínűleg meg is akarom belül ez a funkció itt? Közönség: [hallható]. ANDI Peng: Megyünk szeretné strchr húr a megjelenését a teret. Mert ha visszatér valamit, akkor tudjuk, hogy ez legyen a mondat. Ez azt jelenti, hogy meg kell Van egy hely ezen a húr. Ha nincs hely, akkor tudjuk, hogy, hé, gondolom ez nem egy húr. Valószínűleg csak egy nagyon hosszú szó. Ezért adok nektek egy pár perc írni ezt a funkciót. Igen. Közönség: Kaptál ez a szöveg a felhasználó? ANDI Peng: Igen. Tehát ez csak egy funkciója. Így elképzelhető belül a fő funkciója Máris have-- menjünk innen. OKÉ. Szóval írtam ezt a programot, ahol Ott van a fő funkciója, ahol Épp most létrehozott két húr. Az első egy Hi, my name az Andi-- egyértelműen, egy mondat. A második egy van csak Andi, nyilvánvalóan nem mondat. És így futok mind a két húrok ezzel a funkcióval. Azt akarom srácok, hogy írjon hideg mondat. És én tárolására azokat az értékeket, és aztán csak kinyomtatásához. Szóval úgy gondolja, hogy a felhasználó megy át a szövegben. És akkor fogsz lényegében kitalálni, ha ez a mondat vagy nem és visszatér igaz vagy hamis megfelelően. Ha akartok, hogy egy Menő vagy heads-up, fej bólint, ez bárkit is készen áll Ennek az lenne a jó. Talán, mint 30 másodperc? Minden rendben. Lássuk akkor próbálja írom ezt a funkciót. Szóval ál coding-- Én csak megy fajta séta ezt most. Elég sok, tudjuk, hogy a funkciót, hogy meg kell használni. Fogunk nevezném funkció a húr, és keressen egy helyet. Ha visszatér valamit, akkor meg kell tudni, hogy pontosan ez a mondat. Mert van terek. Aztán megyünk vissza igaz. Else, megyünk vissza hamis. Tudja valaki akar adni nekem az első kódsor hogy mi történt valójában használni ezt írni? Ez valójában a legnehezebb kódsort is. Igen. Közönség: Ha strtok s-- ANDI Peng: Csak strchr. Közönség: [közbeiktatásával VOICES] térben nem egyenlő null. ANDI Peng: Cool. Pontosan így van. Mindenki megérti, hogy az első sorban? Fogunk hívja strstr, amely egy olyan funkció, hogy a keresések az s karakterláncot a karaktere tér. És ha talál, ez lesz a vissza mutatót hol van. Ha nem találja, ez meg fog visszatérni NULL. Tehát, ha visszatér semmi más, mint NULL, akkor tudjuk, hogy talált egy helyet. Ennek van értelme? Hűvös. Minden rendben. Tehát, ha tudjuk, hogy talált egy hely, mit akarunk csinálni? Közönség: Visszatérés igaz. ANDI Peng: Ja. Return true. És akkor, hogy valaki akar befejezni a funkció nekem? Igen. Mást, csak úgy. És próbáld összeállításakor. Aha. Tehát ahogy ti is látni a kimenetek, emlékszem Logikai C mindig kifejezett bináris. 1 igaz. 0 hamis. Ha volt, hogy futtatni ezt funkciót karakterlánc egy, ami Hi, a nevem Andi-- Egyértelmű, hogy egy sentence-- az eredmény kinyomtatható 1 ami igaz. A második, ami csak Egy szó, eredmény kinyomtatható 0, ami hamis. Mindenki tiszta fajta, hogyan Ezt a funkciót írta? Igen. Közönség: Lehet mi is csinál, ahelyett, nem egyenlő, egyenlő értéke 0, így, hogy ez egyenlő? ANDI Peng: Nem. Mivel strchr függvénye. Megyek vissza erre. Szóval mi a visszatérési típus a mi strchr funkció? Közönség: Ó, oké. Vagy NULL. ANDI Peng: Igen. Ez egy char *, hogy azt mondja, hogy bármi Ezt a funkciót fog visszatérni, ez lesz a mutatót. Vagy a mutatót lesz mutatva, ahol ez megtalálható ez, vagy ez lesz visszatérni egy mutató NULL. Mindkét körülmény, hogy fog vissza a mutatót valamit. És így ha úgy döntesz, hogy egyenlőségjelet Ez egyenlő, egyenlő, 0, fogsz kapni egy fordítási hibát. Mert ez lesz visszatérni a mutatót. És te fogsz, hogy megpróbálja hasonlítsa össze mutató egy egész. És a számítógép nem fog tetszeni. Igen, pontosan. Hűvös. Mindenki jó? És másodszor, fogunk menni több mint egy függvény nevű strstr. Nem gond, ha ezek a funkciókat zavaró Önnek. Ők zavaró számomra. Mint ilyen, ti is láttátok, minden hang nagyjából ugyanaz. Csak amikor össze vannak zavarodva, húzza fel a string.h könyvtár. És ti rendezheti amelyen keresztül az ember melyik. Szóval strstr, minden, ami nem az, keresések karakterlánc egy egész más húr. Szóval, ha strchr csak keresések Egyetlen karakter, strstr keres egy egész szöveget. Így akartam nézni, én nem Tudja, Hi, a nevem Andi. És a legjobb barátom neve is Andi. Ha akartam keresni ebben mondat az egész szót Andi, a tű lett volna amit keres. És a szénaboglya bármi keres rá. Tehát, ha keres egy bizonyos szót belül egy mondatot, ez a szó lesz a tűt. És akkor a mondat önmagában lesz a szénakazalban. És ez így csak keres Az első előfordulás A húr tű A húr szénakazalban. Ez adja vissza a mutató Az első eset. Kivéve, emlékszem ebben az esetben ez a első előfordulása a teljes szöveg hogy maga keresett Mert nem csak egy karakter. És így ez szinte az ugyanaz, mint a funkció Már megtettük, csak a egy kicsit specifikusabb. Mert maga keresett több, mint egy karakter. És a használata pontosan ugyanazt mint az, hogy mi csak volt. Mindenki rendben van ez? OKÉ. Utolsó fogunk menni felett van strrchr, ami nem tévesztendő össze strstr vagy strchr. strrchr van egy extra r ott. Legyen óvatos, amikor írsz. Akkor találja magát is beleértve extra r vagy sem, beleértve az r, majd a funkciója A kapott nem fog működni. És te leszel zavarodva. Legyen óvatos, hogy te helyesírás Mindezen funkciók jogot. Tehát strrchr a pontos ugyanaz, mint strchr kivéve keresi és nem az első előfordulása egy adott karakter, hanem inkább az utolsó előfordulását. És így, ebben az értelemben, ez majdnem pontosan ugyanaz. De ahelyett, hogy mozog továbbítsa a húr, fogsz mozog visszafelé a szövegben. Pontosan ugyanazt a dolgot, te csak keres más sorrendben. És így ez lehet szuper, szuper hasznos a keresési funkció, az első funkciót a PSET. Tegyük fel, hogy mi szükség van levelet funkciója void hosszabbítás, melyben át állandó char * fájl nevét, csak egy csomó, a fájl nevét, hogy úgy, hogy nevét és nyomatok ki a hosszabbítást, hogy a fájl. Így például, ha én át a húr a pset7.zip, ez meg fog kinyomtatni csak kiterjesztése, ami .zip. És ez a munka az bármiféle kiterjesztése, .docx Word vagy pdf egy PDF fájl vagy .html egy HTML fájlt. Elég sok, levelet funkció, amely képes erre. Én tényleg lesz térhessen át az IDE. Nem load-- ott vagyunk. Tehát minden, amit tettem itt létrehozott egy char *, az első húr, nevű pset7.zip. Megyek a nagyításhoz. Létrehoztam egy második szöveg nevű finalpaper.docx. És írni nekem, hogy a funkció, amikor nevű fog csak nyomtassa ki A fájlnévkiterjesztések. Talán egy pár percig gondolkodni hogyan fogsz csinálni. Kissé nagyobb kihívás mint az utolsó, de a használat szinte pontosan ugyanaz. Igen. Tehát levelet nevezett funkció kiterjesztése hogy ha neked adom a fájl nevét, ha én is adjak pset7.zip-- I Szeretném, ha nyomtassa ki csak a .zip. Ha adok neked tetszik finalpaper.docx, csak nyomtassa ki a .docx, Csak a hosszabbítás bármilyen fájlt. Ez valójában csak úgy két sornyi kódot. Így próbálja, hogy ha lehet talán csinálni ezt. Igazából csak vesz egy sor kód. De két vonal valószínűleg több szabvány. Milyen funkciót vagyunk talán szeretne majd hívni? Közönség: strrchr. ANDI Peng: strrchr, ugye. Mert mi keresünk jobbról balra. Nem adtam nektek Példaként, mint ez, de ha én adtam neked egy példát, mint www.apple.com és szerettem volna A .com, hogy lenne olyan példa, ahol hívni kívánt végső fokon az időszak, és nem az első, ugye? Ha volt hívás strchr, hogy lenne megadtam a apple.com. Ha hívják strrchr, hogy adott volna neked a .com. És ezért legyen óvatos, amikor ways-- az én például, akkor talán lehetett volna Csak írásbeli használatával strchr, mivel ott csak egy pontot. De más esetekben, hogy nem lehet a helyzet. És így mindig megpróbál, hogy tervezzen a kódot is, így hogy-- igen? Közönség: Tehát a Például azt mondtad, ha nem strrchr ez lenne Önnek .com vagy most jött? ANDI Peng: Ez megadja a .com. Közönség: OK. ANDI Peng: Igen. Rámutat, hogy hol találta. Igen. 30 másodperc talán? Igen. Mindenki jó, vagy talán egy kicsit több időt? Kézfelemeléssel? Mutass fejek? Hűvös. Bárki akar adni nekem az első kódsort ehhez a programhoz? Közönség: [hallható]. ANDI Peng: Szóval először is, nézzük talán megtöri ezt le. Tehát mi a visszatérési típus strrchr? Menjünk vissza. strrchr, mi a visszatérési típus? Közönség: Char * ANDI Peng: Ez egy char *, ugye? Ami azt jelenti, hogy akkor valószínűleg fog hogy szeretne létrehozni egy másik char *, hogy milyen Az áruház amikor csak visszatért, igaz? Mert ha hívsz A funkció strrchr, ez meg fog adni egy mutatót bárhol is megállapította, hogy az utolsó időszakban, jobbra? De fogsz akar tárolja, hogy valahol, ugye? És igen, hogyan tudjuk kódolni Ezt figyelembe programunk? Közönség: Azt, hogy A char * [hallhatatlan]. ANDI Peng: Ja. Közönség: [hallható]. ANDI Peng: strrchr. Igen. Ó, kihagyott egy r van. Közönség: Fájlnév [hallhatatlan]. Mi az? Ó, ez csak s. ANDI Peng: Ó, ez csak s. Ja, bocs. Az én hibám. Példák nem egyezik. Közönség: És akkor pont. ANDI Peng: Ja. Legyen óvatos, ha a srácok are-- itt, hadd nagyítani. Ott vagyunk. Legyen óvatos, ha a srácok gépel, különösen akkor, ha csinálsz, csak egy karakter. Ez nagyon egyszerű, hogy véletlenül éppen nem dupla idézőjelek helyett egységes. Ez nem fog működni. A fordító fog panaszkodni. És a funkció csak nem fog futni. És ezért legyünk óvatosak csinálsz dolgokat KARAKTEREKRE, hogy ez az egyetlen idézetek. És így nem ebben a sorban a kód értelme mindenkinek? Hozunk létre egy char * mutató. Mivel strrchr visszatér valami típusú mutató. És így fogunk hívni strchr S, ami a húr, a fájl Íme, hogy mi vagyunk halad. És keresünk az utolsó például egy időszak, amely a Csak a aposztróf dot idézőjel. Igen. Közönség: Amikor nem használjuk idézőjelek között és mikor mire használjuk az aposztróf jelet? ANDI Peng: Igen. Tehát dupla idézőjel Mindig használni, ha Van egy sor több, mint egy. Tehát ha csinálsz strstr, amely az egyik, hogy Keressen egy string karakterlánc, akkor haladna ez idézőjelek. De minden alkalommal, amikor csak egyetlen karaktert, akarsz csinálni az aposztróf jelet. Ez egy jó dolog, hogy tartsa szem előtt. Tehát most, hogy már a pointer, mit csináljunk vele? Arra kérlek, hogy a srácok nyomtatás ki, ugye? Tehát [hallható], azt szeretnénk, hogy add nekem a kódsort? Közönség: printf-- ANDI Peng: Igen. Közönség: --you kell egy hely. ANDI Peng: Ja. Közönség: Print a hely tulajdonosa. Nem tudom, mi az a hely tulajdonosa, de értelme. OKÉ. Hagyjuk, hogy most majd. Közönség: És akkor comma-- ANDI Peng: Pointer, ugye? Közönség: Pointer, aha. ANDI Peng: Szóval egyfajta trükkös kérdés, köze van utalásokkal és vonósok hogy már egyfajta beszéltünk már. Miféle hely tulajdonosa teszünk szükség van egy mutató egy char *? Közönség: [hallható]. ANDI Peng: Igen. Ez könnyebb, mint gondol srácok ez. Közönség: karakterlánc? ANDI Peng: Ez csak egy string, pontosan. Mert emlékszem húrok nem igazán létezik. A char * a pontos ugyanaz, mint a húr. És így tényleg ez s az, amit kellett volna használni végig. OKÉ. Lássuk, mi lehet próbálni futtatása. Csináljuk a make kiterjesztése. Hűvös. Látjátok, hogyan telt el a psset7.zip és a finalpaper.docx, és ez csak kiírja A .zip és .docx? Van értelme? OK Tehát úgy gondolom, a Look Up funkciót a PSET te fog kérni, ha a húr van egy bizonyos véget, Van, hogy egy bizonyos hibakód. És így ez lesz elég borzasztó. Mert meg, hogy kitaláljuk hogy mi a kiterjesztés, összehasonlíthatja, hogy kiterjesztése, hogy ha ez összeillik egy bizonyos kiterjesztése. És akkor visszatérhet egy hibaüzenet, igaz? Igen. Közönség: Tehát mi nem Hozzá kell 1 vagy bármi? A mutató megy the-- ANDI Peng: Nem. Közönség: --point után. ANDI Peng: Igen. Rámutat pontosan ahol az esemény volt. Így például itt vagyunk keresi az időszak. Így fog visszatérni A mutatót az időszak. És akkor ez meg fog nyomtatni ki kezdődő időszakra. Szóval nem kell hozzá 1. Bár, ez teljesen rendben van, hogy, ha Ön nem biztos abban, hogy csak ilyen A teszt ez ki magát. Építs egy mintaprogram. Teszteld ki magad, és hol ez a nyomtatást. Ez szintén nem egy rossz megoldás erre. Hűvös. És ez elég sok minden Volt srácok ma. Sikerült egy csomó PSET cucc ma. Tehát ha kétségei vannak, mint a Azt mondta, mindig nézz fel A string.h könyvtár erre PSET. Ott lesz egy csomó függvény ott, hogy hasznos lehet. Néhányan talán nem lenne hasznos. Én nem igazán tudom. Wade át rajta, van egy csomó őket. strstr, strchr, strrchr is szuper, szuper hasznos, valamint A strcpys és strcasecmps hogy mi már használt. Ez csak sok szórakozni vonósok, annak meghatározása, hogy ők egyenlő, egyre dolgot ki húrok, és hogy képes megnyitni fájlokat. Ez egy csomó file I / O. PSET tényleg nem olyan rossz. Fogsz, hogy egy nézd meg, töltse le, és lát egy csomó kódot. Nem kell aggódni, a kódot valójában írni nem rossz egyáltalán. Ha valakinek van kérdéseket az szerver, gyere hozzám szakasz után. Kérj bocsánatot ismét nem így cukorkát, hogy a Halloween. Nem tudom, mi a baj velem. De mi lesz a kettős Az édességet legközelebb. És sok szerencsét a PSET ezen a héten. Aha.