ANDI Peng: Við erum næstum gegnum allar psets. Í raun erum við með meirihluta af erfiðustu psets. Þannig að við erum í raun bara fara að eins konar gola gegnum næstu vikur. Við erum að fara að byrja að tala um okkar lokaverkefni, atburðir koma upp á næstu vikum. Og lífið verður gola. Svo ekki of mikið í dag. Vonandi mun reyndar gola gegnum dagskrá í dag, og þá vera héðan með nokkurn tíma til vara. Einnig, ég vil biðjast afsökunar fyrir skort á sælgæti í dag. Ég veit ekki hvers vegna. En í vikunni sem leiðir upp Halloween, ég myndi gleyma sælgæti. Þannig að ég er í raun bara mikill vonbrigði að þér núna. Því ég man bókstaflega nammi fyrir hvert einasta flokki, en Halloween. En í næstu viku, mun ég koma tvöfalda sælgæti til að bæta upp fyrir það, allt fyrir þig. Það verður frábært. Svo ég hafa a par af tilkynningum um einhverja tímasetningu. Ég hef nokkrar tímasetningu málefni. Þá erum við að fara að hreyfa á til tala um það sem er kallað chmod. Við erum að fara að tala um fljótt TCP / IP HTTP. Og þá erum við að fara að kóða okkar eigin vefsvæði með HTML og CSS. Og þá ég reyndar eftir kannski eins og 20 mínútur til að tala um pset6. Vegna pset6 er í raun mikið af efni sem við höfum þegar séð áður, en ég vildi að hressa sumir af þeim hugtökum auk kenna nokkra nýjar aðgerðir. Cool. Svo fyrst af öllu, velkomin til baka frá brot. Ég vona að þú ert hlé var skemmtilegt. Vilt gerðir þú fyrir brot? Áhorfendur: Fór til New York. ANDI Peng: Þú fórst til New York? Ég held hálfa skóla okkar fór til New York. Það er allt í lagi. Ég eyddi mest um brot mitt kyrrsetu í rúminu Netflixing. Og það var góður tími. En við erum nú aftur, aftur í fundur, aftur í sveiflu af hlutur. Við höfum pset vegna á föstudaginn á hádegi. Ég held að þú hafir nú þegar tók upp prófið, já? Svo einhver annar hefur sem ekki haft Skyndipróf þeirra, Vinsamlegast koma og fá Skyndipróf þína frá mér í lok kafla. Eða fylgjast með mér niður á háskólasvæðinu. Ég hef það með mér einhvers staðar. Lokaverkefni okkar fyrirfram tillögu einnig. Svo fyrir þau okkar sem hafa aldrei tekið þessi flokkur áður, hyrningarsteinn CS50 er mjög mikið náði hámarki í þessu Grand verkefni sem nemendur leggja. Og pre-tillögu, bara almenn hugmynd af því sem maður gæti langað til að gera fyrir þeirra Verkefnið, sem hugmyndin er vegna Mánudagur, næsta mánudag á hádegi. Svo ansi mikið, David Ég held mun tala meira um þetta í fyrirlestri ef hann hefur ekki nú þegar. Og það er solid síðu á heimasíðu okkar að útskýra allar kröfur verkefnisins. En í raun, taka hvaða efni sem þú hefur haft áhuga á um þinn tíma hér á CS, hvort sem það er gaming eða hönnun eða video eða eitthvað. Og þú getur í raun eins konar nú gilda nokkrar af þeim lærdóm sem við höfum lært hér í CS50-- hi, welcome-- að nánast stunda lokaverkefni að eigin vali. Allt sem er vegna mánudagur er bara stutt káputexti tölvupósti til mín, fljótleg setningu, eins, hey, Andi, Ég er virkilega áhuga á að hanna leikur sem gerir þetta fyrir iOS. Cool. Bara láta mig stutta Byrjunar þitt hugmyndir um lokaverkefni þínum. Og við munum tala um hvort sem er í raun góð hugmynd eða ekki, ef það er gerlegt hugmynd eða ekki. En bara pre-tillögu er vegna næsta mánudag. pset6, yndisleg web-- okkar sem er rangt. Pset7? pset6? Það er pset6, ekki satt? pset6, vefur framreiðslumaður okkar, er vegna Föstudagur á hádegi við lok dags. Viðtalstími halda venjulega frá Mánudagur til fimmtudags 8:00 til 11:00 í þessari viku. Ég held Commons næstu þrjár nætur. Cool. Áður höfðum við í efni, er einhver hefur einhverjar spurningar, brandara, sögur? Hvað gerðir þú fyrir fall hlé? Áhorfendur: Hvað á ég að gera? ANDI Peng: Already það er aldri síðan raun. Christabel fór til New York. Ég var hér og Netflixed. Áhorfendur: Ó, já ég var hér. ANDI Peng: Oh, OK. Áhorfendur: Ég man ekki hvað sérstaklega. ANDI Peng: Það er allt í lagi. Áhorfendur: Netflixing sennilega. ANDI Peng: Netflixing. Já, það er góður tími. OK. Allt í lagi. Einhverjar spurningar áður við stökk inn efni? Einnig erum við að fara að reyna að hraða í gegnum kafla í dag, ekki of mikið til að ná. Og vonandi munum við fá út hér svolítið snemma. Því miður fyrir ekki sælgæti, einnig. Ég hefur gert sérstaklega á Halloween. Allt í lagi. Cool. Þannig að við erum að fara að byrja að tala um a stjórn lína rifrildi heitir chmod. chmod, allt það er er bara Unix kerfi kalla fram frá the stjórn lína til að breyta skrá heimildir. Svo til dæmis, höfum við allt rakst á síðu svona sennilega einhvern tíma í æviskeið okkar um að vera internet notandi, þar sem vefur framreiðslumaður okkar eru gefið okkur að villa um Forbidden. Þú hefur ekki leyfi til að fá aðgang, yadda, yadda, yadda, á þessum vefþjóni. Allt sem raunverulega þýðir er að aðgangsstýringar sem voru fest við hvað þú varst að reyna að fá aðgang voru ekki opin fyrir þig. Svo ansi mikið, chmod er leiðin sem getum við breytt þeim kerfi heimildir að gefa öllum, notandi, hópur, heimurinn, eða Sambland af þeim aðgang að ákveðnum skrám, framkvæmdarstjóra, nokkuð raunverulega, hvers konar kerfi á stýrikerfi. Þannig að ef einhver af krakkar hafa tölvur ef þér finnst eins og eftirfarandi með mér í dag, algerlega hika við að bara slá inn hluti í. Ef ekki, getur þú bara að hanga út. Þannig að ég ætla að fara til raunverulega draga upp flugstöðinni minn núna. Svo Skipunin til að keyra chmod, eða að minnsta kosti bara að skrá heimildir á þinn skrá skrá, er bara ls-l. Eins og þú geta sjá, fullt af efni birtist sem flest er mikilvægt fyrir okkur á vinstri-hönd hlið hér. Þið sjá fullt af RS, röngu, 1 /. Já. Þeir eru í raun bara allt skráarréttindi að útskýra hvað ákveðnum möppum og skrár innan kerfinu þínu með. Svo við skulum fara aftur til máttur lið hér. Svo til viðbótar við skráarheitum sem þið sjáið á hægri, við erum að leita að sjá í raun bara dálkurinn til vinstri. Svo í viðbót við bara skrá nöfn, við Hægt er að sjá heimildir skráa, þeirra Eigandi hópur, heiti hópsins, dagsetningu að skránni var síðast breytt, et cetera. Þú getur séð fullt af hlutum með chmod. Svo leið að við lesum chmod er að fyrsti stafurinn við nánast hunsa hvað varðar lestur leyfi. Fyrsti stafurinn segir okkur bara það tegund af kerfi sem við erum að fá aðgang. d, í þessu tilfelli, er möppu eða skrá. Þannig að við vitum að nú vinnusvæði minn kafla sjö var skrá. Og þá sérðu þrjá triads, í raun bara þrjú sett af þremur stöfum. Og þú getur hugsa um hver sem hluti. Svo þú verður bara þrjú sett af þrír bitar, níu bitar alls. Þú ferð með þá í hópa af þremur. Svo er fyrsti hópurinn af þremur alltaf notendaþjónustu heimildir. Seinni hópurinn þinn af þremur er alltaf hópnum ykkar heimildir. Og í þriðja þitt af þremur er alltaf svona í heiminum, en alls staðar heimildir. Svo ég giska á auðvelt spurning að spyrja er hvað er munurinn notanda eða hóp. The aðalæð mismunur milli notenda og hópur er að notandi er bara þú persónulega aðgang hvað sem það er núna. A hópur getur verið ef þú ert með marga notendur á einni tölvu, til dæmis. Öllum þeim er hægt að meðhöndla sem hópur. Og þá er heimurinn bara heimurinn, allir. Svo við getum séð síðar hvernig við getum breyta þeim í mismunandi heimildir. Svo ansi mikið, við erum fara að enn áherslu á hluta til á vinstri, þar fyrir skráningu CS50 við sjáum drwx, þar sem r þýðir bara að það er læsileg. W þýðir bara að það er hægt að skrifa í. Og þá x bara þýðir að það er executable. Þú vilt hugsa það góður af ekki skynsamleg. Það ætti að vera e. En x raun eins konar virkar svolítið betur, vegna þess að þú getur muna það betur. Svo þrjár gerðir af hlutum sem þú getur gert, getur þú annað hvort lesið skrána, þú getur haft leyfi til að skrifa skrá, eða þú gætir hafa leyfi að framkvæma skrá. Og svo hvernig við raunverulega þær sem eru í bitum er tölurnar 4, 2 og 1. Svo er eitthvað sem er læsileg táknaður með fjölda 4. Nokkuð sem er hægt að skrifa í er táknuð með 2. Og allt sem er executable sem fulltrúi 1. Svo í þessum skilningi, getum við einnig tákna þessar Numbers hæ, velkomin, á annan hátt. Sorry. Áður en allir, ég ætla að afsökunar fyrir hönd allra slá bekknum núna. Ég gleymdi nammi dag. Fyrirgefðu ég er bilun í þessari viku af Halloween. Ég mun koma tvöfalt magn af nammi næst til að bæta upp fyrir það. En engu að síður, því miður um að krakkar, því miður. Svo leið að við getum í raun inntak á stjórn okkar rifrildi er við getur gert chmod hópur Slash heimildir, þar sem hópurinn er bara hvað sem Hópurinn sem við erum að reyna að breyta. Og heimildir eru hvað við viljum bæta við það. Svo til dæmis, auk bætir heimildir, og Draga tekur burt heimildir. Og gerðir af hópnum við erum með okkar fyrir alla, u fyrir notendur, g fyrir hópa, eða eða fyrir aðra. Það er dálítið abstrakt núna. En við munum fara yfir nokkra dæmi bara til að sýna fram á þetta raunverulegur fljótur. Allir gott um þetta renna, svo ég geti flutt á? Cool. Svo til dæmis, rwx. Áður en við tölum um hvað það táknar, fyrst af öllu hvað þýðir rwx meina? Ef þú sérð að þetta víst Skráin hefur heimildir rwx, hvað þýðir það að Maður gæti verið fær um að gera? Áhorfendur: Lesa, skrifa og framkvæma. ANDI Peng: Já, einmitt. Þú getur lesið skrifa og framkvæma. Vegna öllum þremur þeirra stafir eru til staðar. Þannig að ef við förum á undan og tala um þetta í skilmálar af bitum, sem rwx er einnig hægt fulltrúa sem 700. Því eins og þú geta sjá í hvaða konar skrá skrá leyfi, það er þrisvar triads. Í þessu tilviki er það eingöngu fyrsta Triad hefur neitt þar. Þannig að í þessu tilfelli, r er 4, W er 2, og X er 1. Ef þú bætir við þeim saman, er það 7. Og svo ef þú umbreyta það að tvöfaldur, það er 700. Vegna 7 er fyrsta Triad. 0, það er ekkert til staðar í annarri triad. Og þá er það ekkert til staðar í þriðja Triad, svo er það annað 0. Svo í sama skilningi, fullt af triads má fulltrúa bara í bitum, bara í tvöfaldur eins og heilbrigður. Svo 700 þýðir nákvæmlega það sama sem rwx ------ hvað varðar heimildir. Allir ljóst á það? Cool. Og svo chmod 111 myndi gefa sem heimildir til að skrá? Gefa ykkur nokkrar sekúndur til að umbreyta þessu. Mundu, fyrsta Triad er fyrir notendur. Annað Triad er fyrir hópinn. Og þriðja Triad er fyrir alla. Og svo chmod 111 myndi gefa sem gerð á heimildir og hverjum? Taktu nokkrar sekúndur til hugsa um það og koma aftur. Já. Áhorfendur: Svo allir geta framkvæma það. ANDI Peng: Yup, einmitt. Áhorfendur: En enginn getur lesið eða skrifað. ANDI Peng: Og ekki hika við að útskýra fyrir alla hvernig þú komst að þeirri niðurstöðu. Áhorfendur: Jæja, fyrir notanda, hóp, og heimurinn, það er allt 1, sem er póstnúmer fyrir executable. ANDI Peng: Já, einmitt. Svo 1, í þessu tilfelli, allt sem við vitum er að það er executable kóða. Vegna lestur er 4. Ritun er 2. Og executable er 1. Svo er öll þrjú triads eru 1, sem þýðir að til heimsins, til notenda, og að hópnum, sem þeir eru executable. Allir góður með það? OK. Og svo seinni leiðin að við getum í raun skrifa þetta líka er þú gæti bara gert chmod plús x. a: allt eða alla. Plús þýðir að gefa leyfi til að. Og þá x þýðir executable. Svo er tvær skipanir það eru í raun eins. Svo ef þú vilt keyra þetta í flugstöðinni, þú gerir chmod 111, nafn Skrá eða skráin. Eða þú getur gert chmod plús x, Heiti skrá skrá. Sami hlutur, bara auðveldari leið, kannski, fyrir suma að tákna eða breyting skráarréttindi. Hver og einn í lagi með chmod áður en við fara? Cool. Svo nú erum við að fara að fara í a Nokkrar glærur um mjög óhlutbundin hugtök að ég er ansi mikið fara að gola í gegnum. Og það er alveg í lagi ef þú ekki skilja allt. Jafnvel nú, ég samt ekki alveg skilja allt alveg. En það er meira um að fá hæsta stigi skilningur um hvernig sumir af þessum hlutum vinna. Þannig að við erum að fara að tala fljótt um TCP / IP, sem er bara Transmission Control Bókun rista Internet Protocol. Muna frá fyrirlestri, David, gerði hann kenna þér dæmi þar sem hann myndi fara tónarnir í umslagi upp að eins efst fyrirlestrarsal? Svo í lagaskóla salnum David fram í meginatriðum hvernig TCP / IP vinnur í að því leyti að allt það er er leið til að tryggja að gögn hefur verið afhent yfir miðlara eða á internetinu. Svo í dæminu á umslaginu og skilaboðin, sem notandinn í lok gætu séð það, ó, ég þurfti að fá fjórar pakka af upplýsingum. En ég reyndar aðeins fengið þrjú. Það þýðir að ég þarf að vera vantar eitt. Og eitt var ekki afhent. Og svo TCP / IP á internetinu, í gegnum tölvuna og miðlara, er nákvæmlega sama. Allt það gerir er að tilgreina a ramma sem misst gögn pakka er hægt að endursent og móttekið. Eins og á netinu þegar þú ert að reyna til að opna skrár á netinu eða senda skrár til vinar eða líta á vefnum vafra, þúsundir og þúsundir milljarða og milljarða bytes upplýsingar eru flutt á millisekúndu. Og það er mjög, mjög ruglingslegt. Og það er mjög erfitt að í raun veit hvað er verið send og hvað er ekki verið send. Og svo TCP / IP skilgreinir bara a samloðandi ramma þar sem þinn vefur flettitæki og miðlara getur konar samskipti við hvert annað, bara ganga úr skugga um að pakka eru allt hér og ekkert er glatað og öll gögn sem þú baðst er í raun birta almennilega. Allir OK á bara að mjög Stutt mikil skilja? Cool. Svo þá erum við að fara að flytja í að tala um HTTP, sem er bara Hypertext Transfer Protocol. HTTP, allt það er er sem einhver síða eða skrá er skoðuð á vefsvæðið þitt, þjóninum skilar HTTP stöðukóði bregðast að beiðni að tryggja að heldur, ó, þetta beiðni fór í gegnum. Og allt er að birta almennilega. Eða, ó, nei, 404. Eitthvað fór úrskeiðis. Oh, ég get ekki birt. Allt það er er að allt þú ert að reyna að fá aðgang, nota sem notandi er að reyna að fá aðgang, á internet-- bara að tryggja sem þú hefur annað hvort tekist nálgast hvað það var eða ekki tókst að nálgast hvað það var. Og svo HTTP stöðu Code veitir bara þér leið á að vera fær um að vita hvort eða það ekki var vel eða ekki. Svo til dæmis, dæmi beiðni. Þú getur séð hér að það er yfirleitt oftast fjórum línum. Við höfum GET HTTP 1.1, sem er bara aðferðin beiðni URL, siðareglur útgáfa, the sviði nafn, og á sviði gildi. Þannig að ekki þarf að alveg minnið neitt hér. Bara svona kynna sjálfur með hvernig þetta líta. Í þessu dæmi er, er aðferðin beiðni URL er bara hvað beiðni þú ert að senda á miðlara. Eins, hey, framreiðslumaður, ég vil virkilega að aðgangur yadda, yadda, yadda, HTTP síðu. Siðareglur útgáfa er bara hvað sem útgáfan þín gestgjafi eða miðlara er að nota til að nálgast upplýsingar. The sviði nafn er vefsíða eða URL sem þú ert að reyna að fá aðgang, í þessu tilfelli, www.apple.com. Og sviði gildi bara venjulega nafn, gildi. Og það getur verið hvers konar samsetningu af bókstöfum eða tölum eða hvað sem er. Svo dæmigert beiðni, svo hvað tölvan þín í raun sendir til miðlara sem segir, hey, þú veist hvað ég þarf þetta birtist, það er góður af beiðni sem þeir fá í raun. Dæmi svar um hvað Miðlarinn myndi senda til baka til þín væri laglegur mikill the sami hlutur, nema með stöðukóðanum efst. Svo 200, 2 0 0 er alltaf stöðu póstnúmer fyrir lagi. Eins, OK, þetta beiðni fór í gegnum. Þú tókst að fá aðgang allt rétt. Lífið er gott. Lífið er fínt. Allt er algerlega gott. Og svo þetta bara segir vafrann og netþjóninn, hey, gott allt er. Ég fékk allar upplýsingar sem ég þarf. Cool. En vandamálið er stundum vandamál koma upp þegar þú have-- endast held ég Ég talaði um afrit. Þú ert með minna góð viðbrögð. Svo til dæmis, 404 er Page Not Found. Þú ert stundum með Forbidden aðgang. Þú hefur ýmsar aðrar númerin stöðu sem ég er viss um að þú hafir öll séð þegar þú ert reyna að gera rannsókn á netinu. Og vafrinn þinn gefur þér sem, nei, þú getur ekki aðgang. Og þú ert eins vel, vitleysa. Svo bara ansi mikið, það er sumir laglegur algengar númer stöðu. Kannski kynna þér sem sjálfur þá eru. The funniest einn sem Ég held að ég hef aldrei heyrt of-- ef þú skyldir að fletta upp öllum þeim á netinu, fyrir sumir ástæða það er í raun alvöru stöðukóði kallaði 418 Ég er katli. Ég googled þar sem Uppruni þetta væri. Og virðist einn April Fools ' Day nokkra áratugi síðan, einhver hélt að það væri fyndið til að búa til nýja stöðu kóða heitir 418 Ég er katli. Löglega, nafn þetta númer er kallað ég katli. Ég gleymi hvaða síðu þú ert að fara að raunverulega gera þetta sýna. En virðist, getur þú í raun að fá stöðukóðanum ég katli einhvern veginn gegnum að gera eitthvað. Svo er það hundruðir og hundruð stöðu númerum. Sumir þeirra gera meira vit en aðrir. En ansi mikið bara kynna sjálfur með algengustu sjálfur. Umbeðið aðili Líkaminn er stutt og Stout, greinilega. Svo stundum eru meira ógnvekjandi villur en ég er katli. En þetta er eitt sem ég giska þú vonast konar að lemja. En ég held ekki að þú verður. Allir gott á bara stöðu númer, beiðnir, ferli, gerð úr skugga um er afhent rétt? Svo nú erum við að fara að umskipti í um skemmtilegt hluta kafla í dag, þar sem við tölum svolítið um HTML. HTML, allt er það HyperText Markup Language. Það er bara venjulegt mál þú notar til að búa til alla vefnum síður á internetinu. Svo allir vefur blaðsíða, það er uppáhalds vefsíðu þinni? Hvað er uppáhalds þinn vefur síðu? Áhorfendur: [inaudible]. ANDI Peng: Sorry? Áhorfendur: Tumblr. ANDI Peng: Tumblr. Svo Tumblr er skrifuð í HTML. Og svo við munum í raun fara í gegnum og leika í kring með sumir af þessum hlutum síðar. Nánast allt sem þú þurfa að læra, að vita, að skrifa HTML þú getur sennilega bara Google á internetinu. HTML, það er ekki forrit eins og C þar sem þú getur búið til breytur og gera kaldur hlutur með það. Það er meira af bara, ó, þetta er hvernig ég vilja það til að birtast á heimasíðu mína. Og ég ætla bara að fara að setja það í. Og það er að fara að stíla hana. Svo HTML, í vissum skilningi, það er bara eins og formatting eða sniðmát tungumál. Það er mun auðveldara. Það er mun auðveldara að læra, mun auðveldara að skrifa í en dæmigerður forritun tungumál, mjög auðvelt, mjög notandi aðgengileg og vingjarnlegur. Þannig að við erum í raun að fara að spila um, skrifa eigin síður okkar í dag. En áður en við byrjum, ég vil bara að fara yfir nokkrar stuttar bestu starfshætti. Vegna HTML er svo auðvelt tungumál og því jafnvel ef þú gerir nokkra hluti rangt, það getur stundum ekki eftir því, við viljum tryggja að við erum reyndar tolla bestu starfsvenjur okkar að ganga úr skugga um að það sem gæti verið að fara í kring en eru ekki alltaf að fara að ekki fara rétt ganga úr skugga um að þeir eru í lágmarki. Svo ansi mikið, ganga úr skugga um loka öllum tags þín þegar þú ert að skrifa í HTML. Ef þú ert að opna a líkami, ganga úr skugga um að þú ert loka það með líkama einhvers staðar. Þú vilt tryggja að þinn Vefsíðan í gildi með því að nota það sem er kallað W3 Staðfestir. Þú getur bara Google sem á netinu, og það er tengill á það. Og þá þú vilt sérstakt HTML, sem er tungumál Markup þinn frá stíl, sem er CSS tungumál sem David sýnt fram á að við erum líka að fara að spila svolítið með fyrirlestri. Cool. Svo hvenær þú vilt keyra HTML á CS50 tæki, við erum að fara að keyra forrit sem heitir Apache, sem allt það er bara byggt í Vefþjónninn sem í CS50 allir hefur aðgang að. Við köllum það apache50 bara vegna þess að við eins og að kalla allt 50 í CS50. Svo leið að þú byrjar CS50 vefnum Miðlarinn er með því að slá á stjórn þinni lína apache50 byrja punktur. Og ef þú vilt að enda það á einhverju tími, þú enda apache50 ekki punktur. Og þú högg bara inn. Og það ætti að vera á leiðinni upp hér fljótlega. Já. Þannig að ég ætla bara að fara að fljótt fara yfir dæmi um mjög stutta vefsíðu. Og við erum að fara að eyða eins 10, 15 mínútur að spila um að skrifa eigin okkar vefsíðum. OK. Svo hér í IDE-- geta allir séð það? Eiginlega ekki. Hér mun ég stækka. Ég hef bara fengið þetta stutta sniðmát hér með ekkert í raun í það. Við erum bara að fara að fljótt skrifa HTML program þar sem við bara heilsa upp á heiminn. Svo sama eins og í C, nú erum við bara að fara að gera það í HTML. Er einhver að vilja í raun bara reyna að gefa mér það fyrsta sem þú þyrfti að setja í HTML skjal? Já. Áhorfendur: The sviga, [inaudible]. ANDI Peng: Já. Svo eitthvað sem er mjög einstakt að HTML sem við jafnan venjulega ekki lenda í öðrum stjórn lína stigi forritunarmál er að við í raun að tilgreina tegund af skrá að þetta er að fara að vera efst á kóða okkar. Þannig að í þessu instance-- ég held það er rétt stjórn, ekki satt? Já. Efst, þú vilt bara að fela Bang DOCTYPE HTML í sviga bara að segja tölva, hey, líta út. Og HTML skjalið er að koma. Og þá hvernig við viljum að byrja á skrá okkar? Ef við viljum bara að segja halló, hafa Vefsíða sem segir halló við umheiminn, hvernig eigum við að fara um að byggja þetta? Reyndar, við skulum snúa við Google. Og við getum í raun gert þetta. Já. Það sem við förum. Svo HTML. Eins og þú geta sjá, vafrinn minn er í raun sjálfkrafa stíl þetta fyrir mig. Sama og í C, þegar þú búa til opinn hrokkið Brace, Vafrinn þinn sjálfkrafa bætir í nánu hrokkið borsveif. Til allrar hamingju, IDE okkar elskar að gera þetta fyrir okkur eins og heilbrigður. Svo nú getum við eins konar tegund upphaf tag, og það er að fara að alltaf að segja okkur að muna að slá enda tag. Ég held að þetta þurfi að vera til eignar. Og þá viljum við bæta, alltaf, höfuð sem er titillinn. Við viljum bara að kannski hringja þetta halló, og þá líkaminn. Og þar sem þú ferð. Það er í raun HTML skjal okkar. Svo leið að allir HTML skjal er alltaf stíll in-- sama með int main tóm. Þú vilt alltaf hafa HTML opið og loka tag efst og neðst á kóðann þinn. Þú vilt hafa höfuð inni á sem inniheldur titil, bara hvað sem er að fara að sýna flipann þinn vefur síðu, og þá líkami inni sem mun í raun sýna innihald af hvað sem þú vilt gera. Svo ef þú vildir í raun að keyra þetta, ég ætla að þysja út aftur. Þú getur í raun byrjað apache50 byrja punktur. Cool. Og svo eins og þú geta sjá, nú Þessi tengill hefur smella upp. Það segir á síðuna þína er nú í boði á einhverjum tengilinn hér að neðan. Svo allt hefur IDE okkar done-- ekki IDE, sorry-- já, IDE okkar hefur gert er að búa til vefur tengilinn sem öll vefsíðum okkar er hægt að nálgast á þjóninum. Svo skulum taka a líta hér. Skulum smella á þetta, fara í hello.html. Og þú sérð mjög einfalt vefsíða fyrir halló heimur. OK. Við erum í raun að fara að bara hafa everyone-- já, hvað er uppi? Áhorfendur: Ég er með undirstöðu spurningu. ANDI Peng: Yup. Áhorfendur: Hvernig vista skráin sem HTML? ANDI Peng: Já. Svo ef ég væri að búa til nýja skrá, ef ég geri nýja skrá, Untittle, ef ég geri, section.html, Boom, það er allt sem ég þarf að gera. Áhorfendur: [inaudible]? ANDI Peng: Nei Áhorfendur: [inaudible]. ANDI Peng: Nei Áhorfendur: [inaudible]. ANDI Peng: Já. Nánast, framlenging á skrá sem er inni IDE þinn, sem segir tölvunni, sem segir vafra, hey, líta út. Þetta er að fara að vera númer skrifað í þessu tungumáli. Svo til dæmis, í Microsoft Word, hvað öll Word skjöl enda með, hvaða eftirnafn? .doc eða .docx, ekki satt? Allt sem gerir er Tilgreint stýrikerfið, hey, þú hafir fengið Word skjal koma upp. Opnaðu það með orði. Sama með PDF-skjöl. Það veit, ó, ég þarf að opna þessa skrá með Adobe Reader eða Adobe Acrobat. Og svo eftirnafn reka sama hátt og í tölvunni þinni. Ef þú tilgreinir númer síðuna þína að vera nefndur HTML, þá veit það, ó, að þú hafir fengið HTML kóða. Ég ætla að meðhöndla það eins og HTML kóða. Svo það er frábær klár í þeim skilningi. Svo allir, við skulum taka eins og 10 mínútur og bara búa til eigin vefsíður okkar. Við skulum bæta við í fallegum hlutum. Feel frjáls til að segja hvað sem þú vilt. Ég vil bara vera viss um að netþjónum allra eru í gangi rétt áður en við frjáls þig inn í pset. Vegna þess að ef þjónum þínum ekki hlaupa fyrir pset, sem verður mjög, mjög slæmt. Ég ætla bara að fara að fljóta í kring og sjá hvað allir er að vinna á. Hvernig gengur? Áhorfendur: Ég sneri bara á tölvunni minni. ANDI Peng: Það er allt í lagi. Áhorfendur: [inaudible]. ANDI Peng: Bara IDE þinn. Já. Áhorfendur: [inaudible]. ANDI Peng: Það er allt í lagi. Áhorfendur: [inaudible]. ANDI Peng: Totally fínn. Er allir aðgang Vefþjónninn OK þeirra? Er apache50 keyra í lagi? Ég held að í sumum öðrum köflum, við haft mál með fólk ekki vera fær um að fá aðgang að miðlaranum. Já. Svo þú keyrir bara apache50 rúm byrja pláss tímabil. Áhorfendur: [inaudible]. ANDI Peng: Yup. Gott? Áhorfendur: [inaudible]. ANDI Peng: Oh, OK. Svo þú ert að ætlast til að hafa pláss. Svo apache50-- Áhorfendur: ég gerði. ANDI Peng: --start pláss. Áhorfendur: Oh, rúm punktur. ANDI Peng: Yup, rúm punktur. Þar sem þú ferð. Svo þá ef þú ert með HTML síðu til, þá getur þú bara farið beint á tengilinn sem það tilgreinir. Og þú ættir að vera fær um að sjá hana. Allir getað aðgang vefsíður þeirra OK? Áhorfendur: [inaudible]. ANDI Peng: Ó, það er allt í lagi. Áhorfendur: [inaudible]. ANDI Peng: Já. Ég held að þú getur raunverulega opna það í vafranum þínum, vafra og ekki bara IDE þinn vafra. Já, ég held ef þú afrita og líma það. Áhorfendur: Og svo hvernig eigum við að slökkva á henni? [Inaudible] ANDI Peng: Já, þú gerir apache50 hætta án tímabili. Já. Áhorfendur: [inaudible]. ANDI Peng: Með neitun tímabili. Já. Það sem við förum. Já. Við erum að skapa okkar eigin vefsíður. Áhorfendur: Oh, kaldur. ANDI Peng: Já. Áhorfendur: Ég er með spurningu. Svo Apache 50-- ANDI Peng: 50, já. Áhorfendur: [inaudible]. ANDI Peng: Hvað? Það er undarlegt. Sjá, það var eins konar útgáfu sem var að gerast áður. OK. Sjá mig eftir kafla. Þar sem við erum með nokkrar mál með miðlara. Og þú vilt gera viss um að netþjóninn er gangi áður en pset. Þar sem þú ert að fara að þurfa það. Já. Er einhver annar sem hefur ekki verið fær um að fá netþjóni þeirra á að byrja? Fyrir þá sem vilja til að bæta viðbótar stíl til þinn vefur blaðsíða, við getum í raun gert hvað Davíð gjörði í fyrirlestri eins vel, sem er að búa til viðbótar stíl blaði, sem er punktur CSS, Cascading Style Sheet og í raun bara að bæta við það í. Svo til dæmis, hef ég bara búið ansi mikið næstum nákvæmlega sami Davíð gerði í fyrirlestri. Þú getur nokkurn veginn bara gert líkamann. Þú ert það sem kallast tags sem þú getur sótt um að IDE hvað sem kafla þú vilt innan þinn Raunveruleg HTML síðu. Þannig að líkaminn á síðunni, þú getur gert texta Miðjujafna. Og þá ég skapandi a tag heitir topp inni sem ég vil þetta til gerast, úthluta stærri pixla stærð fyrir letur. Ég vil letur þyngd að vera djörf. Og ég vil lit til vera blár, bara handahófskennt gildi sem ég ákvað að velja. Ég get búið til annan merki sem heitir miðja. Leturstærð, gera það aðeins minni. Og þá get ég búið til annan tag kallaði botn þar sem ég vil leturstærð að vera jafnvel minni enn. Og svo ansi mikið er þetta bara dæmi frumkóða eða uppspretta stílblöð að það er mjög auðvelt að bara Google. Ef þú segir, ó, ég vil letur minn að italicized og dökk grænn, þú getur sennilega Google, og þá mun það segja þér viðeigandi merki eða auðkenni til að búa til. Og svo leið að þú væri í raun konar hafa þetta í HTML skjal eða nota það er allt sem þú þarft að gera hér er í höfuðið Bæta við tengli til stíll lak. Svo þú getur bara tengt href jafn hvað nafn stíll lak þinn er. Og þá samband er stíll lak. Svo innan hvaða HTML skjal, svo lengi eins og þú eru þetta punktur CSS blaði, þú ættir að vera fær um að fá aðgang og hafa eiginleika þar. Svo til dæmis, hér er ég hef bara búa til annan dæmi vefsíðu. Þetta er velkomið að CS50 kafla Þriðjudaga frá 2:00 til 3:30 með mér. Og þá hef ég bætt yndislega mynd sem við hugsanlega að vera fær um að sjá. Þannig að ef þú taka a líta hér, ef þú ferð til style.html, við búið til vefsíðu með kettlinga. Vegna kettlingur eru ógnvekjandi. Svo að bæta mynd er bara img src tengil. Ansi mikið, ef það er hvers konar lögun þú vilt bæta við þinn website-- þannig að við skulum segja, þú vilt bæta matseðill eða leita bar eða eins An image-- bara Google hvernig á að gera það. Og þú plop bara í því formi. Og þú getur bara nokkuð mikið bara bæta við það í. Það er mjög, mjög auðvelt. Við erum að skapa okkar eigin vefsíður núna. Ef þú villt það-- Áhorfendur: [inaudible] ANDI Peng: Sorry? Áhorfendur: [inaudible]. ANDI Peng: Ó, div er bara deild segja mér að, ó, ég hef ákveðin hluti sem kallast miðja þar sem ég er að beita CSS tag minn, og þá annað deild mín við botn. Það er allt það er að segja þér. Vegna þess að það er gott að halda það snyrtilegur í röð, þannig að forritið veit hvernig á nákvæmlega að keyra. Og ég held að geta afrita líma þetta í raun vafranum mínum eins og heilbrigður. Það ætti að vera fínn. Já. Yay. Svo ef allir vilja bara reyna að búa til vefsíðu, við munum taka aðra tvær til þrjár mínútur. Ég vil bara vera viss netþjónum allra eru í gangi og allir hafa hugmynd um hvernig á að gera það. Ef þú krakkar vilja til að taka út tölvur. Enn ekki að virka? Áhorfendur: Ég er bara [inaudible]. ANDI Peng: Kannski reyna uppfæra 50 eins og heilbrigður. Já. Áhorfendur: [inaudible]. ANDI Peng: Já. Svo leið að þú byrjar nýtt Vefþjónninn á IDE er bara gera apache50 pláss byrjun rúm punktur. Ég vildi bara vera viss netþjónum allra eru í gangi OK. Áhorfendur: Hér á flugstöðinni? ANDI Peng: Já. Áhorfendur: [inaudible]. ANDI Peng: Apache. Reyndar held ég að þú ert gangi eitthvað þegar. Já, þú ert í raun keyra aðra miðlara. Já, þú ert góður. Svo lengi sem það er að vinna, þú ert í lagi. Áhorfendur: OK. ANDI Peng: Það er tveir leiðir til að hlaupa netþjónum. Svo lengi sem einn af the lifnaðarhættir er að vinna, það er allt í lagi. Við munum taka aðra mínútu bara að eins konar ljúka upp klára snertir á hvað vefsíðu sem þú krakkar vildi gera. Er allir vinna á veginum? Netþjónum allra eru gangi fyrir utan fyrir ykkur? Við munum reikna það út. Og HTML er frekar einfalt. Þannig að ég held að við séum öll góð. Já. Ég kem aftur. Áhorfendur: [inaudible]. ANDI Peng: OK. Áhorfendur: Svo það er bara byrjaði að hlaða upp. ANDI Peng: Engar áhyggjur. Svo HTML, það er kóðinn sem verður á netinu eftir kafla. Einnig David hefur allt fullt á netinu eins og heilbrigður. Bara svona litið yfir það að sjá hvernig HTML síður eru skrifuð. Það er nokkuð auðvelt. Eitthvað sem þú veist ekki, að þú nokkuð mikið bara Google og þú ert góður. Ég vil bara vera viss um að netþjónum eru í gangi. Áhorfendur: Er það að gera þetta oft? ANDI Peng: Það er aldrei gerst við mig. Ég vissi ekki að það gæti jafnvel leggjast í vetrardvala. Áhorfendur: [inaudible]. ANDI Peng: Ég held everyone-- minn hefur aldrei hibernated áður. Og ég veit ekki hvers vegna. Það er undarlegt. Áhorfendur: [inaudible]. ANDI Peng: Er þitt dvala? Áhorfendur: [inaudible]. ANDI Peng: Já. Áhorfendur: Það er allt í lagi. Svo þegar það er opið. ANDI Peng: OK. Við munum bregðast við einhverjum miðlara mál eftir kafla. Þú ættir að vera fínn. Þó, þú vilt tryggja að þú fá þá leyst áður en þú ferð. Vegna þess að ef netþjóninn er ekki í gangi, þá þú ert ekki að fara að vera fær um að gera pset, eins og allir hluti af pset. Svo þú vilt vera viss um að það er að vinna. Cool. Allt í lagi. Kveðja kettlinga. Ég eyddi löngum tíma í að leita að sem kettlingur mynd til að setja á. Svo, engu að síður. Áhorfendur: [inaudible]. ANDI Peng: Sorry? Áhorfendur: [inaudible]. ANDI Peng: Ég held að það er á heimasíðu. Eins og sérstakur? Áhorfendur: [inaudible]. Ég held að sérstakur er bara netinu í viku sjö. Ég held að það heitir pset6, jafnvel þó að við erum á viku sjö, sem er dálítið computing. Áhorfendur: En ég meina ef þig langar að líta at-- ef þú vilja til að draga upp útgáfa okkar af vefurinn frá skera okkar? Svo er eins og server.c í pset, ekki satt? Ef þú vilt líta á þetta, eins og hvernig það fer fram? ANDI Peng: Oh, svo í raun sem pset, erum öll við að gera hér er implementing-- hér, Ég ætla að fara yfir þetta í stuttu máli. Svo fyrir alla það er bara fengið kafla, þú krakkar eru í heppni. Það er mjög lítið efni að í raun ná í dag. Ég ætla bara að fara að eyða næsta 20 mínútur að fara yfir pset hjálp. Vegna þess að það er einhver gagnlegt aðgerðir sem hjálpa lífi þínu. Og vonandi munum við vera út héðan í eins og 20 mínútur. OK. Svo er pset7 rangt. Jafnvel þó að við erum á viku sjö, það er í raun pset6. Ég mun breyta því. Allt sem við erum að gera í pset6 er að búa til vefþjón. Það hljómar frábær ógnvekjandi. Og sérstaklega fyrir þá ykkar sem þegar hafa horfði á dreifingu kóða, það er mikið af kóða, a einhver fjöldi af kóða. En er algerlega í lagi. Vegna snotur sendinn hluti af í raun að skapa the framreiðslumaður er gert af okkur. Allt sem þú ert í raun spurt að gera í þessu pset er bara að gera sumir band meðferð í skrá I / O. Það er í raun eins frekar einfalt. Svo þegar þú sækir fyrst that-- sem hér hefur reyndar þegar sótt sem pset og tekið líta? Allt í lagi. Já. Það er eins og 500 línur af kóða að þú ert að fara að vera eins og, hvað er í gangi? Og það er algerlega fínt. Gakktu úr skugga um að þú horfir á ganga throughs. Vegna David and-- ég veit ekki. Ég held ekki að það er Zamyla er, þetta einn. En ég held að sumir annar ganga gegnsæi eru nokkuð gagnlegt með tilliti til bara láta þig vita hvað er að gerast inni í kóðann þinn. Og það er alveg í lagi. Þar sem fjórar aðgerðir sem þú ert beðinn um að framkvæma hafa í raun núll að gera með raunverulegt miðlara. Allir þeir verða að gera er bara að þáttun mismunandi strengi, leita í gegnum strengi, að tryggja að hlutirnir eru að gera hvað þeir eiga að gera. Svo þar að lútandi, eru sumir mjög gagnlegur virka, sérstaklega fyrir band meðferð, sem við ættum öll fara yfir það sem ég hélt að ég myndi verið mjög gagnlegt fyrir ykkur að læra áður en reynt pset. Og þeir eru allir sem innan string.h bókasafnið þitt. Það er líklega meira gagni aðgerðir sem ég hef ekki hér með, vegna þess að ég annaðhvort aldrei nota þá eða kannski ég bara vissi ekki að þeir eru. Feel frjáls til að sýn í gegnum student.h. Þar er að fara til vera a einhver fjöldi aðgerðir sem eru mjög gagnlegar. Svo sex sem ég nota mest í minn pset þegar ég var að gera það í síðustu viku voru strtok, strchr, strrcher, strstr, strcasecmp og strcpy. Og svo á síðustu tveimur kann að virðast nokkuð þekki flest ykkar. Str ræða saman, allt það gerir er að bera saman strengir til að stöðva þá fyrir jafnrétti, þ.mt mál. Og strcpy bara eintök einn strengur inn í stuðpúða. Og svo þessir tveir ættu að virðast mjög þekki ykkur á þessum tímapunkti. Vegna þess að við höfum notað þá mikið, sérstaklega fyrir síðustu psets. En fyrstu fjóra kannski þú hefur ekki séð hingað til. En ég ætla bara að ganga í gegnum þá. Vegna þess að þeir eru að fara að gera líf ykkar virkilega, virkilega auðvelt for-- ekki auðvelt, en miklu auðveldara fyrir þessa komandi pset. OK. Svo char * strtok, þetta er að virka skilgreining fyrir þessa aðgerð sem innan band, h bókasafn. Ef þú ert að gefa inntak á char * band, sem er bara band, eða stöðug char * deliminator, delim fyrir stuttu, allt það er að gera er að brjóta stærri band í röð sem við köllum tákn aðskilin með ákveðnu gildi. Svo í vissum skilningi, ef ég væri að gefa þú section.7.php, þetta er band. Svo það væri ef ég væri að fara í þessu sem str minn, char * STR minn, ef deliminator minn var punktur, allt þetta myndi gera er að leita í gegnum streng. Og í fyrsta skipti það sér punktur, það myndi bara koma aftur til bendillinn til síðasta skapi finnast í band áður en þetta. Þannig að það myndi fara hérna. Og það myndi bara gefa mér 7.php. Og ef ég væri að hringja í virka einu sinni, það myndi gefa mér bara .php. Og svo allt þetta virka er að gera er að brjóta niður stærri band í smærri strengi eftir eftir því hvað þú ert að leita að. Og svo til dæmis, í líta upp þinn virka ef þú vilt líta á það ákveðnar persónur koma um eða ef punktar gerast eða eftirnafn gerast, þessi aðgerð væri nokkuð gagnlegt. Já. Engar áhyggjur. Þetta mun allt be-- já, hvað er uppi? Áhorfendur: Svo í fyrstu línu, ef við værum að nota þetta dæmi, hvað myndum við setja inn í það? ANDI Peng: Já. Þú vildi bara að hringja í strtok string komma delim. Og band er jafn section.7.php. Og þá þú ert delim gæti verið jafn bara punktur. Áhorfendur: OK. ANDI Peng: Já. Bara si svona. Allar þessar aðgerðir eru nokkuð svipað þegar við förum í gegnum þau. Þeir gera bara örlítið mismunandi hluti. En þeir eru allir að fara að gera líf þitt mun auðveldara. Annað hlutverk, þetta er eins og frábær, frábær, frábær mikilvægt, er the-- halda upp. Oops. Strchr leitar fyrst occurrence-- raun, já. Strchr er fall sem Ég örugglega bara fór yfir. Svo hunsa það sem ég sagði í fyrsta virka. Það er í raun kallað strchr. Svo það væri gerðist hér er ef þú varst að gefa band í bleikju c, það myndi bara gefa þú hvað það var. Já. Svo hugsa um það sem str, sem er a band, og Chr sem bleikju. Svo allt sem þú ert að reyna að gera er að leita fyrir þar sem bleikju er innan streng. Og svo leit hún í fyrsta tíðni eðli c í band str. Áhorfendur: [inaudible]. ANDI Peng: Yup. Og þá ef það var ekki að finna það, það er að fara að skila NULL. Svo eitthvað sem er að fara að vera mjög gagnlegt fyrir ykkur í að gera pset ef, segjum, þú varst að leita að óákveðinn greinir í ensku eftirnafn eins og .docx fyrir Word skjal eða .pdf fyrir PDF skjal, þú getur konar nota það til að líta fyrir hvað er síðan hvert skipti sem þú sérð punkt, ekki satt? Og svo ansi mikið, ef þig hlaupa að með virka, ef það skilar NULL, þá veistu að það ekki finna það punktur, sem þýðir að þetta greinilega er ekki gild skrá eftirnafn. Eða ef það skilar eitthvað, þá þú veist það er að fara að skila hvað sem er reyndar eftir framlengingu. Svo þeir sem höfðu byrjaði að leita í gegnum útlit og flokka, þessi aðgerð er að fara að vera frábær gagnlegt. Þannig að við erum í raun að fara að sýna fram á að nota þetta. Hví ekki þú krakkar reyna að skrifa virka bool setning char * s að bara skilar true ef s er setning og falskur annað. Svo vísbending, þú ert að fara að sennilega nota strchr. Eða þú leitar bara í band í tiltekinn staf. Og svo í setningu, hvað skilur setningu frá a non-setningu, hvaða tiltekna staf? Áhorfendur: A rúm. ANDI Peng: A rúm, ekki satt? Og svo hvað við erum að fara líklega í langar að gera innan þessa aðgerð hér? Áhorfendur: [inaudible]. ANDI Peng: Við erum að fara að vilja til að strchr band fyrir útliti the rúm. Vegna þess að ef það skilar einhverju, þá við vitum að þetta verður að vera setning. Það þýðir að við verðum hafa pláss í þessum streng. Ef það er ekki pláss, þá vitum við að hey, giska á það er ekki band. Það er líklega bara mjög langur orð. Svo ég ætla að gefa ykkur nokkrar mínútur til að skrifa þessa aðgerð. Já. Áhorfendur: Fékkstu þetta band frá notanda? ANDI Peng: Já. Svo er þetta bara virka. Svo ímynda inni meginvirkni þinn þú þegar have-- skulum fara hér. OK. Þannig að ég hef skrifað þetta forrit hvar Ég hef meginhlutverki mína þar Ég hef bara búið tvo strengi. Sú fyrsta er Hæ, ég heiti er Andi-- greinilega, setning. Second einn minn er bara Andi, greinilega ekki dæma. Og svo ég er að keyra bæði þeirra strengir í gegnum þessa aðgerð. Ég vil að þú krakkar að skrifa kalt setningu. Og ég er að geyma þau gildi, og þá bara prenta þær út. Svo held að notandinn er að fara að fara í streng. Og þá þú ert að fara að í raun reikna út ef það er setning eða ekki og aftur satt eða ósatt samræmi við það. Ef þú krakkar vilja til að gefa thumbs up eða heyrnartól upp, höfuð höfuðhneiging, er einhver er tilbúinn til að byrja þetta, sem myndi vera gott. Kannski eins 30 sekúndur? Allt í lagi. Við skulum sjá hvort þú getur prófað skrifa þessa aðgerð. Svo gervi coding-- ég ætla bara að fara að konar ganga í gegnum þetta núna. Ansi mikið, og við vitum að virka sem við þurfum að nota. Við erum að fara að kalla þetta virka á band okkar og leita að pláss. Ef það skilar eitthvað, þá verðum við vita það, greinilega, þetta er setning. Vegna þess að það er bil. Þá erum við að fara að fara aftur satt. Annars, við erum að fara að fara aftur rangar. Er einhver vilja til að gefa mér fyrsta lína af kóða að við erum í raun að fara að nota til að skrifa þetta? Það er í raun erfiðasta lína af kóða eins og heilbrigður. Já. Áhorfendur: Ef strtok s-- ANDI Peng: Bara strchr. Áhorfendur: [interposing raddir] pláss er ekki jafn null. ANDI Peng: Cool. Nákvæmlega rétt. Allir skilja að fyrstu línu? Við erum að fara að hringja strstr, sem er fall sem leitar band s fyrir bleikju af plássi. Og ef það finnur það, það er að fara að skila bendi á hvar sem er. Ef það er ekki að finna það, það er að fara að skila NULL. Þannig að ef það skilar neitt annað en NULL, þá erum við að það er að finna pláss. Er að skynsamleg? Cool. Allt í lagi. Þannig að ef við vitum að það er fann rúm, hvað viljum við gera? Áhorfendur: Return satt. ANDI Peng: Yup. Return true. Og þá, einhver vill ljúka upp virka fyrir mig? Já. Annars, bara svona. Og reyna að setja saman þetta. Já. Svo eins og þú krakkar geta séð frá framleiðsla, man Booleans í C eru alltaf gefin upp í tvöfaldur. 1 er satt. 0 er falskur. Ef við værum að keyra þetta virka á band eitt, sem er Hi, Andi-- nafns míns greinilega, a sentence-- niðurstaðan prentuð út í 1 sem er satt. The second einn, sem er bara orð, niðurstaða prenta út 0, sem er ósatt. Allir ljóst konar um hvernig þessi aðgerð var skrifað? Já. Áhorfendur: Getum við gert líka, í stað þess að ekki jöfn nei, jafngildir jafngildir 0, þannig að það er jafn? ANDI Peng: Nei Vegna strchr er fall. Ég ætla að baka þetta. Svo er það aftur gerð af strchr virka okkar? Áhorfendur: Oh, OK. Eða NULL. ANDI Peng: Já. Það er char * sem segir mér að allt sem þessi aðgerð er að fara að koma aftur, það er að fara til vera a bendi. Annaðhvort bendillinn er að fara að vera bendir til þar sem það er að finna það, eða það er að fara að fara aftur bendi null. Í báðum aðstæðum, það er að fara til að fara aftur bendi eitthvað. Og svo ef þú varst að jafngilda Þetta jafngildir, jafn 0, þú ert að fara að fá samantekt villa. Vegna þess að það er að fara að skila músina. Og þú ert að fara að reyna að bera bendi heiltala. Og tölvan er ekki að fara að eins og þessi. Já, einmitt. Cool. Allir góður? Og í öðru lagi, við erum að fara að fara yfir virka kallast strstr. Engar áhyggjur ef þetta aðgerðir eru ruglingslegt þig. Þeir eru ruglingslegt mig. Eins og svo, þú krakkar gætu hafa séð, þeir allir hljóð laglegur mikill the sami. Bara þegar þú ert að rugla, draga upp string.h bókasafn. Og þú krakkar geta raða þar sem maður er sem. Svo strstr, allt sem gerir er leit band fyrir allt öðrum streng. Svo hvar strchr bara leitir fyrir einum staf, strstr leitar heilt band. Þannig að ég vildi líta í, ég er ekki vita, Hi, my name is Andi. Og nafn besti vinur minn er einnig Andi. Ef ég vildi til að leita í þessu setning fyrir alla orði Andi, nál minn hefði verið hvað sem þú ert að leita að. Og Heysátan er hvað sem þú ert að leita að því í. Svo ef þú ert að leita að sérstaklega orðið innan setningu, sem orðið er að fara að vera nál þinn. Og þá setningu sjálft er að fara að vera Heysátan þinn. Og svo það leit bara fyrsta tilvik af the band nálinni í band Heysátan. Það skilar bendi við fyrstu einkenni. Nema, muna í þessu tilfelli, er það Fyrsta tilfelli af öllu band sem þú ert að leita fyrir, ekki bara staf. Og svo er þetta næstum því sama og virkni við gerðum bara, bara með aðeins meira sérhæfni. Þar sem þú ert að leita að meira en bara einn staf. Og notkun er nákvæmlega sama eins og sá sem við gerðum bara. Allir í lagi með þetta? OK. Síðasta eina sem við erum að fara að fara yfir er strrchr, sem er ekki ruglað saman við strstr eða strchr. strrchr hefur auka r þarna. Verið varkár þegar þú ert að skrifa. Þú getur fundið sjálfur meðal auka r eða ekki þar á meðal r, og þá virka er fékk ekki að fara að vinna. Og þú ert að fara að vera ruglaður. Verið varkár að þú ert stafsetningu Allar þessar aðgerðir rétt. Svo er strrchr nákvæmlega sama og strchr nema það leitar ekki fyrst Einstakur tiltekið eðli, heldur síðasta viðburður. Og svo, í þeim skilningi, það er nánast nákvæmlega sama. En í stað þess að færa senda í streng, þú ert að fara að vera að flytja aftur í streng. Nákvæmlega það sama, þú ert bara leita í annarri röð. Og svo þetta gæti verið frábær, frábær gagnlegt fyrir útlit þitt virka, fyrsta virka á pset þinn. Skulum láta sem við þurftum að skrifa hlutverk ógilt framlengingu þar sem við standast stöðug bleikju * skrá nafn, bara band, skrá nafn, sem tekur því nafni og prentar út framlengingu þessi skrá. Svo til dæmis, ef ég væri að fara í streng af pset7.zip, það er að fara að prenta út bara eftirnafn, sem er zip. Og þetta myndi virka fyrir hvers konar framlengingu, .docx fyrir Word eða .pdf fyrir PDF skrá eða .html fyrir HTML skrá. Ansi mikið, skrifa fall sem getur gert það. Ég er reyndar að fara að skipta yfir í IDE. Það er ekki load-- það við förum. Svo er allt sem ég hef gert hér skapað char *, fyrsta band, kallað pset7.zip. Ég ætla að stækka. Ég hef búið til annað band kallað finalpaper.docx. Og skrifa mér virka að þegar kallað er að fara að bara prenta út skrá nafn eftirnafn. Kannski taka nokkrar mínútur til að hugsa um hvernig þú ert að fara að gera þetta. Nokkuð meira krefjandi en síðasta einn, en notkun er nánast nákvæmlega sú sama. Já. Svo skrifa fall sem heitir eftirnafn að ef ég gef þér nafn á skránni, ef ég væri að gefa þér pset7.zip-- ég vilt þú að prenta út bara .zip. Ef ég gef þér líkar finalpaper.docx, bara prenta út .docx, bara framlenging af hvað skrá. Þetta í raun aðeins tekur tvær línur af kóða. Svo að reyna að sjá hvort þú getur kannski gert það í það. Reyndar bara það tekur eina línu af kóða. En tvær línur er sennilega meira staðlað. Hvaða fall erum við líklega fara til að vilja kalla? Áhorfendur: strrchr. ANDI Peng: strrchr, ekki satt. Þar sem við erum að leita frá hægri til vinstri. Ég vissi ekki að gefa ykkur dæmi eins og þetta, en ef ég gaf ykkur dæmi eins www.apple.com og ég vildi bara Com, myndi það vera dæmi um þar þú vilt hringja í síðasta lagi tímabilsins og ekki í fyrsta, ekki satt? Ef þú værir að hringja strchr, það hefði gefið þér apple.com. Ef þú kallaðir strrchr, það hefði gefið þér Com. Og svo að vera varkár sem ways-- í dæmi mínu, þú gætir sennilega gæti hafa bara skrifað það með strchr, þar sem það er aðeins einn punktur. En í öðrum tilvikum, það má ekki vera raunin. Og svo alltaf að reyna að hanna númerið þitt vel, svo that-- já? Áhorfendur: Svo í dæmi sem þú sagðir, þegar þú strrchr það væri gefa þér .com eða bara koma? ANDI Peng: Það myndi gefa þér Com. Áhorfendur: OK. ANDI Peng: Já. Það bendir til að þar sem það fann það. Já. 30 sekúndur kannski? Já. Allir góður eða kannski svolítið meiri tíma? Sýna höndum? Sýna höfuð? Cool. Einhver vilja til að gefa mér fyrsta lína af kóða fyrir þetta forrit? Áhorfendur: [inaudible]. ANDI Peng: Svo fyrst af öllu, skulum kannski brjóta þetta niður. Svo er það aftur gerð af strrchr? Við skulum fara aftur. strrchr, hvað er aftur gerð? Áhorfendur: Char * ANDI Peng: Það er char *, ekki satt? Sem þýðir að þú ert líklega að fara að vilja búa til annan char * til tagi af verslun þegar það er aftur til, ekki satt? Því ef þú kallar fallið strrchr, það er að fara að gefa þér bendi hvar kemur fram að síðasta tímabil, ekki satt? En þú ert að fara til að vilja geyma að einhvers staðar, ekki satt? Og svo hvernig við kóða þetta inn í kerfi okkar? Áhorfendur: Þú gerir bleikjan * [inaudible]. ANDI Peng: Já. Áhorfendur: [inaudible]. ANDI Peng: strrchr. Já. Oh, misst af r þar. Áhorfendur: Skráarheiti [inaudible]. Hvað er það? Oh, það er bara s. ANDI Peng: Oh, það er bara s. Yup, því miður. Mín mistök. Dæmi ekki passa. Áhorfendur: Og svo punktur. ANDI Peng: Yup. Verið varkár þegar þú krakkar are-- hér, láta mig stækka. Það sem við förum. Verið varkár þegar þú krakkar eru að skrifa, sérstaklega þegar þú ert að gera bara bleikju. Það er mjög auðvelt að tilviljun bara gera gæsalappa frekar en einn. Það mun ekki virka. Þýðanda er að fara að kvarta. Og virka er bara ekki að fara að keyra. Og svo að vera varkár þegar þú ert að gera hlutina með stafir að það er einn quotes. Og svo er þetta lína af númer skynsamleg alla? Við erum að búa til char * músina. Vegna strrchr ávöxtun eitthvað af gerðinni músina. Og svo erum við að fara að hringja strchr á S, sem er band, skráin nafn, sem við erum liggur í. Og við erum að leita að síðasta dæmi um tímabil, sem er bara einn vitna punktur einn vitna. Já. Áhorfendur: Þegar við notum gæsalappa og þegar við notum einn quotes? ANDI Peng: Já. Svo gæsalappa eru alltaf notuð þegar þér hafa a band af fleiri en bara einn. Svo ef þú ert að gera strstr, sem er sá sem þér leita band fyrir band, þér myndi gefa það í gæsalöppum. En hvenær það er bara einn staf, þú vilt gera einn quotes. Það er gott að hafa í huga. Svo nú er að við höfum okkar músina, hvað gerum við með því? Ég ætla að biðja ykkur að prentun það út, ekki satt? Svo [inaudible], vilt þú að gefa mér línu af kóða? Áhorfendur: printf-- ANDI Peng: Já. Áhorfendur: --you þarft stað handhafa. ANDI Peng: Yup. Áhorfendur: Prenta stað handhafa. Ég veit ekki hvað fram hald er en benda á það. OK. Skulum sleppa að nú þá. Áhorfendur: Og svo comma-- ANDI Peng: Pointer, ekki satt? Áhorfendur: Pointer, jamm. ANDI Peng: Svo konar bragð spurning, hefur að gera með ábendingum og strengi sem við höfum konar talað um nú þegar. Hvers konar staður handhafa gerum við þörf fyrir bendi til char *? Áhorfendur: [inaudible]. ANDI Peng: Já. Það er auðveldara en þú krakkar hugsa það er. Áhorfendur: String? ANDI Peng: Það er bara band, nákvæmlega. Vegna muna strengi í raun ekki til. A char * er nákvæmlega sama sem streng. Og svo í raun þetta s er hvað ætti að hafa verið notuð alla tíð. OK. Við skulum sjá hvort við getum reynt að keyra þetta. Gerum þá sama eftirnafn. Cool. Þið sjá hvernig ég fór í psset7.zip og finalpaper.docx, og það prentar bara út Zip og .docx? Meikar sens? OK Þannig að ég held í líta upp virka í pset þinn sem þú ert fara að vera beðin ef band hefur ákveðið endi, þú þarft að gefa ákveðna villu kóða. Og svo þetta verður ansi hræðilegt. Því ef þú getur fundið hvað eftirnafn er, þú getur þá bera að framlengingu til að sjá hvort það passar upp með ákveðnum framlengingu. Og þá er hægt að fara aftur villuboð, ekki satt? Já. Áhorfendur: Svo við gerum ekki að bæta við 1 eða eitthvað? Bendillinn mun fara til the-- ANDI Peng: Nei. Áhorfendur: --point eftir það. ANDI Peng: Já. Það bendir einmitt til þar sem atburðurinn var. Svo til dæmis hér, við erum leita fyrir tímabilið. Svo það er að fara að fara aftur bendi á tímabilinu. Og þá er að fara að prenta því að byrja á tímabilinu. Svo þú þarft ekki að bæta 1. Þó, það er algerlega í lagi að ef þú ert alltaf í vafa, að bara svona af prófa það út sjálfur. Byggja sýnishorn program. Prófa það út sjálfur og sjá hvar það er prentun. Það er heldur ekki slæm leið til að gera það. Cool. Og það er ansi mikið allt Ég hafði fyrir ykkur í dag. Við gerðum mikið af pset efni í dag. Svo þegar þú ert í vafa, eins og Ég sagði, alltaf líta upp sem string.h bókasafn fyrir þessum pset. Það er að fara til vera a einhver fjöldi af virka í það sem getur verið gagnlegt. Sumir kunna ekki koma að gagni. Ég í raun ekki vita. Wade í gegnum það, það er a heild búnt af þeim. strstr, strchr eru strrchr Super, frábær gagnlegt, svo og að strcpys og strcasecmps sem við höfum nú þegar notað. Það er bara fullt af Messías í kring með strengir, ákvarða hvort þeir eru jafnir, fá dót út af strengjum, og vera fær um að opna skrár rétt. Það er a einhver fjöldi af skrá I / O. pset er í raun ekki svo slæmt. Þú ert að fara að taka a líta á það, sækja hana, og sjá a heild búnt af kóða. Engar áhyggjur, kóðinn þú í raun skrifa er ekki slæmt hjá öllum. Ef einhver hefur vandamál með þeirra miðlara, koma að sjá mig eftir kafla. Afsökunar enn og aftur fyrir að uppeldi nammi Halloween. Ég veit ekki hvað var rangt hjá mér. En við munum hafa tvöfalt nammi næst. Og gangi þér vel í pset þinn í þessari viku. Já.