ANDI PENG: Kami adalah hampir melalui semua psets. Malah, kami melalui majoriti daripada psets paling sukar. Jadi kita sebenarnya hanya akan sejenis angin melalui beberapa minggu akan datang. Kami akan mula bercakap tentang kami projek akhir, peristiwa-peristiwa yang akan datang dalam beberapa minggu akan datang. Dan kehidupan akan menjadi mudah. Jadi tidak terlalu banyak hari ini. Mudah-mudahan, benar-benar akan angin melalui agenda untuk hari ini, dan kemudian keluar dari sini dengan sedikit masa untuk ganti. Juga, saya ingin meminta maaf kerana kekurangan gula-gula hari ini. Saya tidak tahu mengapa. Tetapi pada minggu yang membawa Halloween, saya akan lupa gula-gula. Jadi saya sebenarnya hanya yang luas kekecewaan kepada anda sekarang. Oleh kerana saya benar-benar ingat gula-gula untuk setiap kelas tunggal, tetapi Halloween. Tetapi minggu depan, Aku akan mendatangkan dua kali ganda jumlah gula-gula untuk membuat untuk itu, semuanya untuk anda. Ia akan menjadi besar. Jadi, saya mempunyai beberapa pengumuman mengenai beberapa penjadualan. Saya mempunyai beberapa isu penjadualan. Kemudian kita akan bergerak ke bercakap tentang apa yang dipanggil chmod. Kami akan bercakap tentang cepat TCP / IP HTTP. Dan kemudian kita akan memberi kod kami laman web sendiri menggunakan HTML dan CSS. Dan kemudian saya benar-benar akan meninggalkan mungkin seperti 20 minit untuk bercakap tentang pset6. Kerana pset6 sebenarnya banyak barangan yang kita sudah lihat sebelum ini, tetapi saya mahu untuk menyegarkan beberapa orang-orang konsep dan juga mengajar pasangan fungsi-fungsi baru. Sejuk. Jadi pertama sekali, selamat kembali dari rehat. Saya berharap anda menikmati menyeronokkan. Adakah yang kamu buat untuk percutian? PENONTON: Pergi ke New York. ANDI PENG: Anda pergi ke New York? Saya rasa separuh sekolah kami pergi ke New York. Ia adalah hak semua. Saya menghabiskan sebahagian cuti saya aktif dalam Netflixing tidur. Dan ia adalah masa yang baik. Tetapi kita kini kembali, kembali pada sesi, kembali dalam buaian perkara. Kami mempunyai pset akibat Jumaat ini di tengah hari. Saya rasa anda telah pun mengambil kuiz anda, ya? Jadi sesiapa sahaja yang mempunyai tidak mempunyai kuiz mereka, sila datang dan mendapatkan kuiz anda daripada saya pada akhir bahagian. Atau trek saya ke bawah di kampus. Saya akan mempunyai dengan saya di suatu tempat. Projek akhir kami pra-cadangan juga. Jadi bagi orang-orang kita yang tidak pernah diambil kelas ini sebelum ini, capstone CS50 amat memuncak ini projek besar-besaran yang pelajar mencadangkan. Dan pra-cadangan itu, hanya satu idea yang umum apa yang seseorang mungkin mahu lakukan untuk mereka projek, idea itu adalah kerana hari Isnin, Isnin depan di tengah hari. Jadi cukup banyak, David Saya rasa akan bercakap lebih tentang perkara ini dalam kuliah jika dia tidak mempunyai sudah. Dan ada halaman yang kukuh di laman web kami menjelaskan semua keperluan projek. Tetapi pada dasarnya, mengambil mana-mana topik yang anda telah telah berminat dalam sepanjang masa anda di sini di CS, sama ada permainan atau reka bentuk atau video atau apa-apa. Dan anda boleh benar-benar jenis kini memohon beberapa pengajaran yang kita telah belajar di sini di CS50-- hi, welcome-- untuk cukup banyak menjalankan projek akhir pilihan anda. Semua itu disebabkan Isnin adalah hanya panduan ringkas melalui e-mel kepada saya, hukuman yang cepat, seperti, hey, Andi, Saya benar-benar berminat dalam mereka bentuk permainan yang melakukan ini untuk IOS. Sejuk. Hanya beritahu saya awal sementara di dunia idea-idea untuk projek akhir anda. Dan kita akan bercakap melalui sama ada atau tidak yang sebenarnya adalah idea yang baik atau tidak, jika ia adalah idea yang boleh dilaksanakan atau tidak. Tetapi hanya pra-cadangan adalah kerana Isnin depan. pset6, web-- indah kita yang salah. Pset7? pset6? Ia pset6, bukan? pset6, pelayan web kami, adalah akibat Jumaat pada tengah hari dengan hari lewat. Waktu pejabat menyambung semula seperti biasa pada hari Isnin hingga Khamis 8:00-11:00 minggu ini. Saya rasa Commons untuk tiga malam yang akan datang. Sejuk. Sebelum kami ke dalam bahan, adakah sesiapa mempunyai apa-apa soalan, jenaka, cerita? Apa yang anda lakukan untuk percutian kejatuhan? PENONTON: Apa yang saya lakukan? ANDI PENG: Sudah ia peringkat umur lalu sebenarnya. Christabel pergi ke New York. Saya tinggal di sini dan Netflixed. PENONTON: Oh, ya saya di sini. ANDI PENG: Oh, OK. PENONTON: Saya tidak ingat apa yang khusus. ANDI PENG: Itu OK. PENONTON: Netflixing mungkin. ANDI PENG: Netflixing. Ya, ia adalah masa yang baik. OKAY. Baiklah. Mana-mana soalan sebelum kita melompat ke dalam bahan? Juga, kita akan cuba untuk mempercepatkan melalui bahagian hari ini, tidak terlalu banyak untuk menutup. Dan mudah-mudahan, kita akan mendapat di sini agak awal. Maaf kerana tidak gula-gula, juga. Saya mengecewakan, terutama pada Halloween. Baiklah. Sejuk. Oleh itu, kita akan mula bercakap tentang hujah baris arahan dipanggil chmod. chmod, semua itu adalah hanya satu sistem Unix panggilan dijalankan dari baris arahan untuk mengubah keizinan fail. Jadi, sebagai contoh, kami telah semua dihadapi halaman seperti ini mungkin kadang-kadang dalam jangka hayat kami untuk menjadi internet yang pengguna, di mana pelayan web kami mempunyai memberikan kita kesilapan Larangan. Anda tidak mempunyai kebenaran untuk mengakses, yadda, yadda, yadda, pada pelayan ini. Apa yang benar-benar bermakna adalah bahawa keizinan yang dilampirkan kepada apa sahaja Laman yang anda cuba akses tidak terbuka kepada anda. Jadi cukup banyak, chmod adalah cara di mana kita boleh mengubah suai kebenaran tersebut sistem untuk memberi semua orang, pengguna, kumpulan, atau dunia, atau mana-mana gabungan akses mereka kepada fail tertentu, direktori, apa-apa yang benar-benar, apa-apa jenis sistem pada sistem pengendalian. Jadi, jika mana-mana lelaki itu mempunyai komputer jika anda rasa seperti berikut bersama-sama dengan saya hari ini, sama sekali ragu untuk hanya menaip perkara masuk. Jika tidak, anda hanya boleh bergaul. Jadi, saya akan benar-benar menarik sehingga terminal saya sekarang. Jadi arahan untuk dilaksana chmod, atau sekurang-kurangnya hanya untuk menyenaraikan keizinan untuk anda direktori fail, hanya ls-l. Seperti yang anda lihat, sekumpulan barangan muncul kebanyakan yang adalah penting untuk kami di yang sebelah kiri di sini. Kalian melihat sekumpulan rs, ws, 1 /. Yeah. Mereka pada dasarnya hanya semua kebenaran fail untuk menjelaskan apa direktori tertentu dan fail dalam sistem anda mempunyai. Oleh itu, marilah kita kembali kepada power point di sini. Jadi sebagai tambahan kepada nama-nama fail seperti yang anda semua boleh lihat di sebelah kanan, kami mahu melihat dasarnya hanya lajur di sebelah kiri. Jadi sebagai tambahan kepada hanya nama fail, kita boleh melihat keizinan untuk fail, mereka kumpulan pemilik, nama kumpulan, tarikh bahawa fail yang kali terakhir diubah suai, dan sebagainya. Anda boleh lihat banyak perkara menggunakan chmod. Jadi cara yang kita baca chmod adalah bahawa huruf pertama kita cukup banyak mengabaikan dari segi kebenaran membaca. Huruf pertama hanya memberitahu kita apa jenis sistem kami mengakses. d, dalam kes ini, ialah folder atau direktori. Jadi kita tahu bahawa kini ruang kerja saya seksyen tujuh adalah direktori. Dan kemudian anda melihat tiga kongsi gelap, pada dasarnya hanya tiga set tiga watak. Dan anda boleh memikirkan setiap yang sedikit. Jadi anda hanya mempunyai tiga set tiga bit, sembilan bit dalam jumlah. Anda melayan mereka dalam kumpulan tiga. Jadi kumpulan pertama tiga adalah sentiasa kebenaran pengguna anda. Kumpulan kedua anda tiga adalah sentiasa keizinan kumpulan anda. Dan set ketiga anda tiga sentiasa seperti dunia, di mana-mana kebenaran. Jadi saya rasa mudah soalan untuk ditanya ialah apa yang perbezaan di antara pengguna dan kumpulan. Perbezaan utama antara pengguna dan kumpulan ialah pengguna hanya anda secara peribadi mengakses apa sahaja sekarang. Kumpulan boleh jika anda mempunyai beberapa pengguna pada satu komputer, sebagai contoh. Kesemua mereka boleh dianggap sebagai satu kumpulan. Dan kemudian dunia ini hanya dunia, semua orang. Oleh itu, kita boleh lihat nanti bagaimana kita boleh mengubah suai mereka ke dalam kebenaran berlainan. Jadi cukup banyak, kami akan masih memberi tumpuan pada bahagian di sebelah kiri, di mana untuk direktori CS50 kita lihat drwx, di mana r hanya bermakna ia boleh dibaca. W hanya bermakna ia ditulis. Dan kemudian x hanya bermakna ia boleh laku. Anda akan berfikir ia jenis untuk tidak masuk akal. Ia harus menjadi e. Tetapi x sebenarnya jenis bekerja sedikit lebih baik, kerana anda boleh ingat lebih baik. Jadi tiga jenis perkara yang anda boleh lakukan, anda sama ada boleh membaca fail, anda boleh mempunyai kebenaran untuk menulis fail, atau anda boleh mempunyai kebenaran untuk melaksanakan fail. Dan supaya jalan yang kita benar-benar mewakili mereka dalam bit adalah nombor 4, 2, dan 1. Jadi apa-apa yang boleh dibaca adalah diwakili dengan jumlah 4. Apa-apa yang ditulis diwakili oleh 2. Dan apa-apa yang boleh laku yang diwakili oleh 1. Jadi dalam hal ini, kita juga boleh mewakili numbers-- ini hi, selamat datang, dengan cara yang berbeza. Maaf. Sebelum semua orang, saya akan memohon maaf bagi pihak semua orang memasuki kelas sekarang. Saya terlupa gula-gula hari ini. Saya minta maaf saya gagal minggu ini Halloween. Aku akan membawa dua kali ganda jumlah gula-gula masa depan untuk membuat untuk itu. Tetapi anyways, maaf kira-kira bahawa lelaki, maaf. Jadi cara yang kita boleh sebenarnya input pada arahan kami hujah adalah kita boleh lakukan chmod kebenaran kumpulan slash, di mana kumpulan itu hanya apa sahaja kumpulan kami cuba untuk berubah. Dan keizinan adalah apa sahaja yang ingin menambah kepadanya. Jadi sebagai contoh, serta menambah kebenaran, dan tolak yang menghilangkan kebenaran. Dan jenis kumpulan kita mempunyai kami untuk semua, u untuk pengguna, g untuk kumpulan, atau o untuk orang lain. Ia adalah satu abstrak sedikit sekarang. Tetapi kita akan pergi ke beberapa contoh hanya untuk menunjukkan cepat ini nyata. Semua orang baik mengenai perkara ini slaid, jadi saya boleh bergerak? Sejuk. Jadi, sebagai contoh, rwx. Sebelum kita bercakap tentang apa yang diwakilinya, pertama sekali apakah rwx bermakna? Jika anda melihat bahawa tertentu fail mempunyai keizinan untuk rwx, apakah itu bermakna yang orang boleh dapat lakukan? PENONTON: Baca, tulis dan melaksanakan. ANDI PENG: Ya, betul-betul. Anda boleh membaca menulis dan melaksanakan. Oleh kerana ketiga-tiga mereka watak-watak yang hadir. Jadi, jika kita pergi ke depan dan bercakap tentang perkara ini dalam bentuk bit-bit, rwx juga boleh diwakili sebagai 700. Kerana seperti yang anda lihat dalam mana-mana jenis fail kebenaran direktori, ada tiga kongsi gelap. Dalam kes ini, hanya yang pertama kongsi gelap mempunyai apa-apa di sana. Jadi dalam kes ini, r ialah 4, w ialah 2, dan x ialah 1. Jika anda menambah mereka bersama-sama, ia adalah 7. Dan jadi jika anda menukar kepada binari, ia adalah 700. Oleh kerana 7 adalah kongsi gelap yang pertama. 0, tiada apa-apa masa dalam kegiatan kumpulan kedua. Dan kemudian ada apa-apa yang di dalam kongsi gelap yang ketiga, supaya 0 lain. Jadi dalam erti kata yang sama, sekumpulan kongsi gelap boleh diwakili hanya dalam bit, hanya dalam binari juga. Jadi 700 bermakna perkara yang sama seperti yang rwx ------ dari segi kebenaran. Semua orang jelas pada itu? Sejuk. Dan sebagainya chmod 111 akan memberi yang keizinan untuk fail? Memberikan anda semua pasangan saat untuk menukar ini. Ingat, yang pertama kongsi gelap adalah untuk pengguna. Kongsi gelap kedua ialah bagi kumpulan itu. Dan kongsi gelap yang ketiga adalah untuk semua orang. Dan sebagainya chmod 111 akan memberikan yang jenis kebenaran dan kepada siapa? Mengambil masa beberapa saat untuk berfikir tentang hal itu dan kembali. Yeah. PENONTON: Supaya semua orang boleh melaksanakannya. ANDI PENG: Yup, betul-betul. PENONTON: Tetapi tiada siapa yang boleh membaca atau menulis. ANDI PENG: Dan berasa bebas untuk menjelaskan kepada semua orang bagaimana anda datang ke kesimpulan itu. PENONTON: Nah, untuk pengguna, kumpulan, dan dunia, itu semua 1, yang merupakan kod untuk laku. ANDI PENG: Ya, betul-betul. Jadi 1, dalam kes ini, apa yang kita tahu ialah bahawa itu adalah kod boleh laku. Kerana membaca adalah 4. Penulisan adalah 2. Dan laku ialah 1. Begitu juga ketiga-tiga kongsi gelap adalah 1, yang bermakna kepada dunia, kepada pengguna, dan kumpulan itu, mereka semua boleh laku. Semua orang baik dengan itu? OKAY. Dan sebagainya dengan cara yang kedua yang kita boleh sebenarnya menulis ini juga anda hanya boleh melakukan chmod plus x. bermaksud semua atau semua orang. Ditambah dengan bermakna memberi kebenaran kepada. Dan kemudian x bermakna laku. Jadi ada dua arahan sebenarnya sama. Jadi, jika anda mahu menjalankan ini dalam terminal anda, anda lakukan chmod 111, nama direktori atau fail anda. Atau anda boleh melakukan chmod tambah x, menamakan fail direktori anda. Perkara yang sama, hanya cara yang lebih mudah, mungkin, bagi sesetengah mewakili atau perubahan kebenaran fail. Setiap orang OK dengan chmod sebelum kita bergerak ke atas? Sejuk. Jadi sekarang kita akan menuju ke dalam Beberapa slaid konsep sangat abstrak bahawa saya cukup banyak akan angin melalui. Dan ia benar-benar OK jika anda tidak faham segala-galanya. Malah kini, saya masih tidak benar-benar memahami segala-galanya sepenuhnya. Tetapi ia lebih mendapat peringkat pemahaman bahagian bagaimana beberapa perkara-perkara bekerja. Oleh itu, kita akan bercakap dengan cepat tentang TCP / IP, yang hanya Kawalan Penghantaran Protokol mengurangkan Protokol Internet. Ingat dari kuliah, David, dia mengajar anda contoh di mana dia akan lulus nota dalam sampul surat sehingga suka bahagian atas dewan kuliah? Jadi dalam auditorium sekolah undang-undang David menunjukkan dasarnya bagaimana TCP / IP bekerja di erti kata bahawa semua itu adalah merupakan satu cara untuk memastikan data yang telah diserahkan seluruh pelayan atau di internet. Jadi dalam contoh sampul surat dan mesej, pengguna di hujung dapat melihat bahawa, oh, saya perlu menerima empat paket maklumat. Tetapi saya sebenarnya hanya menerima tiga. Ini bermakna saya mesti hilang satu. Dan satu tidak dihantar. Dan sebagainya TCP / IP di internet, melalui komputer anda dan pelayan, melakukan perkara yang sama. Semua ia adalah menentukan rangka kerja di mana data yang hilang paket boleh membenci dan diterima. Seperti di internet apabila anda cuba untuk mengakses fail dalam talian atau menghantar fail kepada rakan anda atau melihat web pelayar, beribu-ribu dan beribu-ribu berbilion-bilion daripada bait maklumat dipindahkan setiap milisaat. Dan ia benar-benar, benar-benar mengelirukan. Dan ia benar-benar sukar untuk benar-benar tahu apa yang telah dihantar dan apa yang belum dihantar. Dan sebagainya TCP / IP hanya menyatakan rangka kerja yang padu di mana web anda pelayar dan pelayan anda jenis boleh berkomunikasi antara satu sama lain, hanya memastikan bahawa paket semua di sini dan tiada apa yang hilang dan semua data yang anda minta sebenarnya dipaparkan dengan betul. Semua orang OK pada hanya itu sangat peringkat tinggi ringkas faham? Sejuk. Sebab itu kita akan bergerak ke dalam bercakap mengenai HTTP, yang hanya Hypertext Transfer Protocol. HTTP, semua itu adalah apa sahaja mana-mana halaman atau fail diakses di laman web anda, pelayan mengembalikan HTTP yang kod status sebagai tindak balas permintaan memastikan bahawa sama ada, oh, permintaan ini lalui. Dan semuanya dipaparkan dengan betul. Atau, oh, tidak, 404. Ada sesuatu yang tidak salah. Oh, saya tidak boleh dipaparkan. Semua itu adalah bahawa apa sahaja anda cuba untuk mengakses, menggunakan sebagai pengguna cuba untuk mengakses, pada internet-- hanya memastikan bahawa anda sama ada telah berjaya diakses walau apa pun ia atau tidak berjaya dicapai walau apa pun ia. Dan sebagainya status HTTP kod hanya menyediakan anda satu cara untuk dapat mengetahui sama ada atau ia tidak berjaya atau tidak. Jadi, sebagai contoh, permintaan contoh. Anda boleh lihat di sini ia biasanya biasanya empat baris. Kami mempunyai HTTP GET 1.1, yang hanya URL permintaan kaedah, protokol versi, nama lapangan, dan nilai lapangan. Jadi tidak perlu untuk benar-benar menghafal apa-apa di sini. Hanya jenis membiasakan diri dengan cara ini kelihatan. Dalam contoh ini, permintaan kaedah URL adalah hanya apa sahaja permintaan anda menghantar pelayan. Seperti, hey, pelayan, saya benar-benar mahu akses yadda, yadda, yadda, page HTTP. Versi protokol adalah hanya apa sahaja versi hos anda atau pelayan anda menggunakan untuk mengakses maklumat. Nama medan adalah laman web atau URL yang anda cuba untuk mengakses, dalam kes ini, www.apple.com. Dan nilai medan adalah hanya biasanya nama, nilai. Dan ia boleh menjadi apa-apa jenis kombinasi huruf atau nombor atau apa sahaja. Jadi permintaan biasa, jadi apa yang komputer anda sebenarnya menghantar kepada pelayan yang berkata, hey, anda tahu apa yang saya perlu ini dipaparkan, itulah jenis permintaan bahawa mereka benar-benar terima. Sambutan contoh apa yang pelayan akan menghantar kembali kepada anda akan cukup banyak perkara yang sama, kecuali dengan kod status di bahagian atas. Jadi 200, 2 0 0 sentiasa kod status bagi OK. Seperti, OK, permintaan ini lalui. Anda dapat mengakses segala-galanya dengan betul. Hidup ini indah. Kehidupan adalah baik. Segala-galanya adalah benar-benar baik. Dan hal ini hanya memberitahu pelayar anda dan pelayan anda, hey, baik segala-galanya. Saya mendapat semua maklumat yang saya perlukan. Sejuk. Tetapi masalahnya ialah kadang-kadang masalah datang apabila anda ada-- berlangsung saya rasa Saya bercakap tentang pendua. Anda mempunyai tindak balas kurang baik. Jadi, sebagai contoh, 404 adalah Page Not Found. Anda kadang-kadang mempunyai akses Larangan. Anda mempunyai pelbagai lain kod status bahawa saya pasti anda semua melihat apabila anda berada cuba untuk melakukan kajian di internet. Dan pelayar anda memberikan anda yang, tidak, tidak boleh mengakses. Dan anda seperti, baik, crap. Jadi hanya cukup banyak, ada beberapa kod status agak biasa. Mungkin membiasakan diri dengan yang mana mereka berada. Yang paling lucu yang Saya rasa saya pernah mendengar daripada- jika anda berlaku untuk melihat semua daripada mereka talian, atas sebab tertentu ada sebenarnya adalah kod status sebenar dipanggil 418 Saya teko. Saya googled mana Asal-usul ini adalah dari. Dan nampaknya satu April Fool Hari pasangan dekad yang lalu, seseorang fikir ia akan menjadi kelakar untuk mewujudkan satu kod status baru yang dikenali sebagai 418 Saya teko. Sah, nama ini Kod dipanggil Saya teko. Saya terlupa apa halaman yang anda perlu pergi untuk benar-benar membuat paparan ini. Tetapi nampaknya, anda boleh sebenarnya mendapatkan kod status Saya teko entah bagaimana melalui melakukan sesuatu. Jadi ada beratus-ratus dan beratus-ratus kod status. Sebahagian daripada mereka membuat lebih banyak rasa daripada yang lain. Tetapi cukup banyak hanya membiasakan diri anda dengan orang-orang yang paling biasa. Entiti badan diminta adalah pendek dan gempal, nampaknya. Jadi kadang-kadang terdapat lebih kesilapan menakutkan daripada saya teko. Tetapi ini adalah salah satu yang saya rasa anda jenis berharap untuk memukul. Tetapi saya tidak fikir anda akan. Semua orang yang baik pada status hanya Kod, permintaan, proses, membuat berita penting yang disampaikan dengan betul? Jadi sekarang kita akan peralihan ke dalam satu bahagian yang menyeronokkan seksyen hari ini, di mana kita bercakap sedikit tentang HTML. HTML, semua itu adalah Hiperteks Bahasa markup. Ia hanya bahasa standard anda gunakan untuk membuat semua web laman di internet. Jadi mana-mana laman web, apa yang laman web kegemaran anda? Apa yang laman web kegemaran anda? PENONTON: [didengar]. ANDI PENG: Maaf? PENONTON: Tumblr. ANDI PENG: Tumblr. Jadi tumblr ditulis dalam HTML. Dan supaya kita benar-benar akan pergi melalui dan bermain-main dengan beberapa perkara-perkara kemudian. Hampir semua yang anda perlu belajar, untuk mengetahui, untuk menulis HTML anda boleh mungkin hanya Google di internet. HTML, ia bukan satu program seperti C mana anda boleh membuat pembolehubah dan melakukan perkara yang sejuk dengan ia. Ia lebih daripada hanya, oh, ini adalah bagaimana saya mahu perkara yang muncul di laman web saya. Dan saya hanya akan memasukkannya ke dalam. Dan ia akan untuk gaya ia. Jadi HTML, dari satu segi, ia seperti yang format atau template bahasa. Ia adalah lebih mudah. Ia adalah lebih mudah untuk belajar, lebih mudah untuk menulis dalam daripada program biasa anda bahasa, sangat mudah, sangat user mudah dan mesra. Oleh itu, kita sebenarnya akan bermain sekitar, menulis halaman kami sendiri hari ini. Tetapi sebelum kita mula, saya hanya mahu pergi ke beberapa amalan terbaik ringkas. Kerana HTML adalah seorang yg mudah bahasa dan kerana walaupun jika anda melakukan beberapa perkara yang salah, kadang-kadang tidak boleh notis, kami mahu memastikan bahawa kita berada sebenarnya mematuhi amalan-amalan yang terbaik memastikan bahawa perkara-perkara yang boleh pergi sekitar tetapi tidak sentiasa akan tidak pergi ke kanan memastikan bahawa mereka dapat dikurangkan. Jadi cukup banyak, pastikan menutup semua tag anda anda apabila anda menulis dalam HTML. Jika anda membuka badan, pastikan anda berada menutupnya dengan badan yang di suatu tempat. Anda ingin memastikan bahawa anda laman web mengesahkan dengan menggunakan apa yang dipanggil W3 Pengesah. Anda boleh hanya Google yang dalam talian, dan ada hubungan dengannya. Dan kemudian anda mahu berasingan HTML, yang adalah bahasa markup anda dari gaya anda, iaitu bahasa CSS yang dibentangkan Daud menunjukkan bahawa kita juga akan bermain sedikit dengan kuliah. Sejuk. Jadi bila-bila masa anda mahu menjalankan HTML perkakas CS50, kita akan menjalankan program dipanggil apache, mana semua ia hanya terbina dalam pelayan web bahawa semua orang dalam CS50 mempunyai akses kepada. Kami memanggilnya apache50 hanya kerana kita suka untuk memanggil semua 50 dalam CS50. Jadi cara yang anda mula web CS50 server adalah dengan menaip pada arahan anda garis apache50 mula titik. Dan jika anda mahu untuk menamatkan di mana-mana masa, anda apache50 berakhir tiada titik. Dan anda hanya tekan Enter. Dan ia harus menuju di sini tidak lama lagi. Ya. Jadi, saya hanya akan cepat pergi satu contoh bagi sebuah laman web yang benar-benar ringkas. Dan kami akan menghabiskan seperti 10, 15 minit bermain sekitar menulis laman web kita sendiri. OKAY. Jadi di sini di IDE-- yang semua orang boleh melihat bahawa? Tidak, benar-benar. Di sini, saya akan zum masuk. Saya baru sahaja mendapat template ringkas ini di sini dengan apa-apa yang benar-benar di dalamnya. Kami hanya akan cepat menulis program HTML di mana kita hanya bertanya khabar kepada dunia. Perkara Jadi sama seperti dalam C, kini kami hanya akan melakukannya dalam HTML. Adakah sesiapa yang mahu sebenarnya hanya cuba memberi saya perkara pertama yang anda perlu dimasukkan ke dalam dokumen HTML? Yeah. PENONTON: kurungan, [didengar]. ANDI PENG: Ya. Jadi sesuatu yang sangat unik untuk HTML yang kita biasanya tradisional tidak menghadapi dalam perintah lain tahap garisan bahasa pengaturcaraan adalah bahawa kita sebenarnya untuk nyatakan jenis fail bahawa ini akan menjadi di bahagian atas kod kami. Jadi dalam instance-- ini, saya fikir itulah arahan yang betul, bukan? Ya. Di bahagian atas, anda hanya mahu untuk memasukkan bang DOCTYPE html dalam kurungan hanya untuk memberitahu komputer anda, hey, melihat keluar. Dan dokumen HTML akan datang. Dan kemudian bagaimana kita mahu untuk memulakan fail kami? Jika kita hanya mahu bertanya khabar, mempunyai halaman web yang berkata hello kepada dunia, bagaimana kita pergi tentang membina ini? Sebenarnya, mari kita beralih kepada Google. Dan kita sebenarnya boleh melakukan ini. Ya. Di sana kami pergi. Jadi HTML. Seperti yang anda lihat, pelayar saya sebenarnya mendandan secara automatik ini untuk saya. Perkara yang sama seperti dalam C, apabila anda membuat kerinting terbuka, pelayar anda secara automatik menambah dalam pendakap kerinting rapat. Nasib baik, IDE kita suka melakukan ini untuk kita juga. Jadi sekarang kita jenis boleh menaip awal tag, dan ia akan sentiasa memberitahu kita untuk ingat untuk menaip akhir tag. Saya rasa ini perlu dipermodalkan. Dan kemudian kita ingin menambah, sentiasa, kepala di mana adalah tajuk. Kami hanya mahu mungkin memanggil hello ini, dan kemudian badan. Dan di sana anda pergi. Itulah sebenarnya dokumen HTML kami. Jadi cara bahawa mana-mana dokumen HTML sentiasa gaya dalam- Perkara yang sama dengan sah utama int. Anda sentiasa mahu mempunyai HTML tag membuka dan menutup di bahagian atas dan bahagian bawah kod anda. Anda ingin mempunyai seorang ketua di dalam yang mengandungi tajuk, hanya apa sahaja akan memaparkan tab web anda halaman, dan kemudian tubuh bahagian dalam yang sebenarnya akan memaparkan kandungan apa sahaja yang anda mahu lakukan. Jadi, jika anda mahu benar-benar menjalankan ini, saya akan zum keluar. Anda sebenarnya boleh mula apache50 mula titik. Sejuk. Dan sebagainya seperti yang anda lihat, sekarang pautan ini telah muncul. Ia mengatakan laman anda kini boleh didapati di pautan beberapa di bawah. Jadi semua IDE kita mempunyai done-- tidak IDE, sorry-- yeah, IDE kami telah dilakukan adalah mewujudkan web yang link di mana semua laman web kami boleh diakses pada pelayan. Jadi mari kita lihat di sini. Mari kita klik pada ini, pergi ke hello.html. Dan kamu melihat yang sangat mudah Laman web untuk dunia hello. OKAY. Kami benar-benar akan hanya mempunyai everyone-- yeah, apa khabar? PENONTON: Saya mempunyai soalan asas. ANDI PENG: Yup. PENONTON: Bagaimana anda menyimpan fail anda sebagai HTML? ANDI PENG: Ya. Jadi jika saya untuk membuat fail baru, jika saya lakukan Fail Baru, Untittle, jika saya lakukan, section.html, ledakan, itu sahaja yang saya perlu lakukan. PENONTON: [didengar]? ANDI PENG: No. PENONTON: [didengar]. ANDI PENG: No. PENONTON: [didengar]. ANDI PENG: Ya. Cukup banyak, lanjutan pada fail yang ada di dalam IDE anda, yang memberitahu komputer, yang memberitahu pelayar, hey, melihat keluar. Ini akan menjadi kod ditulis dalam bahasa ini. Jadi, sebagai contoh, dalam Microsoft Perkataan, apa yang semua dokumen Word berakhir dengan, apa lanjutan? .doc atau .docx, bukan? Semua yang dilakukan adalah untuk tentukan sistem operasi anda, hey, anda telah mendapat dokumen Word datang. Membukanya dengan Word. Perkara yang sama dengan PDF. Ia tahu, oh, saya perlu untuk membuka fail ini dengan Adobe Reader atau Adobe Acrobat. Dan sebagainya sambungan mengendalikan Cara yang sama seperti dalam komputer anda. Jika anda menentukan halaman kod anda namanya disiarkan HTML, maka ia tahu, oh, anda telah mendapat kod HTML. Saya akan menganggap ia sebagai kod html. Jadi ia sangat bijak dalam erti kata itu. Jadi semua orang, mari kita seperti 10 minit dan hanya membuat laman web kita sendiri. Mari kita menambah dalam perkara-perkara yang indah. Jangan ragu untuk mengatakan apa sahaja yang anda mahu. Saya hanya mahu memastikan bahawa pelayan semua orang sedang berjalan dengan betul sebelum kita membebaskan anda ke dalam pset. Kerana jika pelayan anda tidak berjalan untuk pset, yang akan menjadi benar-benar, benar-benar buruk. Saya hanya akan terapung di sekitar dan melihat apa yang semua orang bekerja pada. Bagaimana ia akan pergi? PENONTON: Saya hanya dihidupkan komputer saya. ANDI PENG: Itu OK. PENONTON: [didengar]. ANDI PENG: Hanya IDE anda. Yeah. PENONTON: [didengar]. ANDI PENG: Ia OK. PENONTON: [didengar]. ANDI PENG: Totally halus. Adakah semua orang mengakses mereka pelayan OK web? Apakah apache50 berjalan OK? Saya rasa dalam beberapa bahagian-bahagian lain, kita mempunyai masalah dengan orang tidak dapat mengakses pelayan. Yeah. Jadi, anda hanya menjalankan apache50 ruang memulakan tempoh ruang. PENONTON: [didengar]. ANDI PENG: Yup. Baik? PENONTON: [didengar]. ANDI PENG: Oh, OK. Jadi, anda sepatutnya mempunyai ruang. Jadi apache50-- PENONTON: saya lakukan. ANDI PENG: ruang --start. PENONTON: Oh, ruang titik. ANDI PENG: Yup, ruang titik. Itupun dia. Sebab itu jika anda mempunyai halaman HTML diwujudkan, maka anda hanya boleh pergi terus ke pautan yang ia menyatakan. Dan anda akan dapat mengaksesnya. Semua orang dapat mengakses laman web mereka OK? PENONTON: [didengar]. ANDI PENG: Oh, itu OK. PENONTON: [didengar]. ANDI PENG: Ya. Saya rasa anda sebenarnya boleh membuka dalam penyemak imbas, penyemak imbas anda dan bukan hanya pelayar IDE anda. Ya, saya fikir jika anda copy dan paste. PENONTON: Kemudian bagaimana kita mematikannya? [Didengar] ANDI PENG: Ya, yang anda lakukan apache50 berhenti tanpa tempoh. Ya. PENONTON: [didengar]. ANDI PENG: Dengan tiada tempoh. Yeah. Di sana kami pergi. Ya. Kami mewujudkan laman web kita sendiri. PENONTON: Oh, sejuk. ANDI PENG: Ya. PENONTON: Saya mempunyai satu soalan. Jadi apache 50-- ANDI PENG: 50, ya. PENONTON: [didengar]. ANDI PENG: Apa? Itu adalah pelik. Lihat, itu adalah jenis isu ini yang telah berlaku sebelum ini. OKAY. Lihat saya selepas bahagian. Kerana kita mempunyai beberapa isu-isu dengan pelayan. Dan anda ingin memastikan bahawa pelayan anda adalah berjalan sebelum memulakan pset. Oleh kerana anda akan memerlukannya. Yeah. Adakah terdapat orang lain yang belum mampu untuk mendapatkan pelayan mereka untuk bermula? Bagi anda yang ingin menambah gaya tambahan ke laman web anda, kita benar-benar boleh melakukan apa yang Oleh Daud dalam kuliah juga, yang mewujudkan gaya tambahan kira-kira, yang merupakan CSS dot, Cascading Style Sheet dan benar-benar hanya tambah dalam. Jadi, sebagai contoh, saya baru sahaja dicipta cukup banyak hampir satu yang sama Oleh Daud dalam kuliah. Anda cukup banyak boleh hanya melakukan badan. Anda mempunyai apa yang dipanggil tag di mana anda boleh memohon untuk Ide apa sahaja seksyen anda mahu dalam anda sebenar ke halaman HTML. Jadi badan halaman ini, anda boleh lakukan pusat align teks. Dan kemudian saya akan kreatif top tag dipanggil dalam yang saya mahu perkara-perkara ini untuk berlaku, menetapkan saiz pixel yang lebih besar untuk fon. Saya hendak berat font untuk menjadi berani. Dan saya mahu warna untuk biru, hanya sewenang-wenangnya nilai-nilai yang saya membuat keputusan untuk memilih. Saya boleh membuat tag lain yang dipanggil tengah. Saiz fon, membuat ia sedikit lebih kecil. Dan kemudian saya boleh membuat tag lain dipanggil bahagian bawah di mana saya mahu saiz fon menjadi lebih kecil masih. Dan sebagainya cukup banyak ini adalah contoh sahaja kod sumber atau sumber lembaran gaya bahawa itu sangat mudah untuk hanya Google. Jika anda berkata, oh, saya mahu fon saya hendaklah ditulis dengan huruf condong dan hijau gelap, anda boleh mungkin Google, dan kemudian ia akan memberitahu anda tag atau ID sesuai untuk mencipta. Dan sebagainya cara yang anda akan benar-benar jenis mempunyai ini dalam dokumen HTML atau menggunakannya adalah semua yang anda mempunyai lakukan di sini adalah di kepala menambah link ke helaian gaya. Jadi anda hanya boleh link setaraf href apa jua nama yang lembaran gaya anda adalah. Dan kemudian hubungan adalah lembaran gaya. Jadi dalam apa-apa dokumen HTML, selagi kerana anda memasukkan ini dot CSS lembaran, anda akan dapat untuk mengakses dan mempunyai ciri-ciri di sana. Jadi, sebagai contoh, di sini saya baru sahaja mewujudkan satu lagi laman web contoh. Ini adalah dialu-alukan kepada seksyen CS50 Selasa 2:00-3:30 dengan saya. Dan kemudian saya telah menambah imej indah yang kita berpotensi akan dapat melihat. Jadi, jika anda lihat di sini, jika anda pergi ke style.html, kita mencipta sebuah laman web dengan anak kucing. Oleh kerana anak kucing yang menggerunkan. Jadi menambah imej hanya img pautan MPP. Cukup banyak, jika ada apa-apa jenis ciri anda ingin menambah anda website-- jadi katakan, anda ingin menambah menu atau bar carian atau seperti image-- yang hanya Google bagaimana untuk berbuat demikian. Dan anda hanya mencebur dalam format tersebut. Hanya dan anda boleh cantik banyak hanya menambah dalam. Ia benar-benar, benar-benar mudah. Kami mewujudkan kita sendiri laman web sekarang. Jika anda ingin supaya- PENONTON: [didengar] ANDI PENG: Maaf? PENONTON: [didengar]. ANDI PENG: Oh, div hanyalah pembahagian memberitahu saya bahawa, oh, saya mempunyai bahagian tertentu dipanggil pertengahan di mana saya memohon tag CSS saya, dan kemudian bahagian saya yang lain dengan bahagian bawah. Itu sahaja yang ia memberitahu anda. Oleh kerana ia adalah baik untuk menjaga perkara yang kemas teratur, jadi program itu tahu bagaimana sebenarnya untuk menjalankan. Dan rasa saya boleh copy paste ini ke dalam pelayar sebenar saya juga. Ia harus menjadi halus. Yeah. Yay. Jadi, jika semua orang mahu hanya cuba mewujudkan laman web, kami akan mengambil dua hingga tiga minit. Saya hanya ingin memastikan pelayan semua orang berjalan dan semua orang mempunyai idea bagaimana untuk melakukannya. Jika anda lelaki mahu mengambil komputer anda. Masih tidak bekerja? PENONTON: Saya hanya [didengar]. ANDI PENG: Mungkin cuba mengemas kini 50 juga. Yeah. PENONTON: [didengar]. ANDI PENG: Ya. Jadi cara yang anda memulakan yang baru pelayan web pada IDE ini hanyalah melakukan apache50 ruang permulaan ruang titik. Saya hanya mahu memastikan pelayan semua orang berjalan OK. PENONTON: Di sini, di terminal? ANDI PENG: Ya. PENONTON: [didengar]. ANDI PENG: Apache. Sebenarnya, saya fikir anda berada menjalankan sesuatu sudah. Ya, anda benar-benar menjalankan pelayan yang berbeza. Ya, anda baik. Selama yang bekerja, anda OK. PENONTON: OK. ANDI PENG: Ada dua cara-cara untuk menjalankan pelayan. Jadi selagi salah satu cara sedang bekerja, ia adalah hak semua. Kami akan mengambil satu minit lagi hanya untuk jenis selesaikan sentuhan kemasan apa sahaja laman web anda semua mahu membuat. Adakah semua orang yang bekerja dengan cara itu? Pelayan semua orang adalah berjalan di samping untuk anda? Kami akan memikirkan yang keluar. Dan HTML yang agak mudah. Jadi saya fikir kita semua baik. Yeah. Saya akan kembali. PENONTON: [didengar]. ANDI PENG: OK. PENONTON: Jadi ia hanya mula memuatkan sehingga. ANDI PENG: Tidak perlu risau. Jadi HTML, ada kod sumber yang akan berada dalam talian selepas seksyen. Juga, David mempunyai keseluruhannya sekumpulan talian juga. Hanya jenis sepintas lalu kepada melihat bagaimana laman HTML ditulis. Ia agak mudah. Apa sahaja yang anda tidak tahu, anda cukup banyak hanya Google dan anda baik. Saya hanya mahu memastikan bahawa pelayan anda yang berjalan. PENONTON: Adakah ia melakukan ini kerap? ANDI PENG: Ia tidak pernah berlaku kepada saya. Saya tidak tahu malah boleh hibernate. PENONTON: [didengar]. ANDI PENG: Saya rasa everyone-- saya tidak pernah hibernated sebelum ini. Dan saya tidak tahu mengapa. Itu pelik. PENONTON: [didengar]. ANDI PENG: Apakah anda berhibernasi? PENONTON: [didengar]. ANDI PENG: Ya. PENONTON: Tidak mengapa. Jadi apabila ia terbuka. ANDI PENG: OK. Kami akan berurusan dengan beberapa pelayan isu-isu selepas seksyen. Anda harus denda. Walaupun, anda ingin memastikan anda mendapatkan mereka diselesaikan sebelum anda berlepas. Kerana jika pelayan anda tidak berjalan, maka anda tidak akan dapat melakukan Serangga, seperti mana-mana bahagian pset. Jadi, anda ingin memastikan yang yang yang bekerja. Sejuk. Baiklah. Katakanlah kucing selamat tinggal. Saya menghabiskan masa yang lama mencari bahawa gambar anak kucing untuk memakai. Jadi, anyways. PENONTON: [didengar]. ANDI PENG: Maaf? PENONTON: [didengar]. ANDI PENG: Saya rasa ia di laman web. Seperti spec? PENONTON: [didengar]. Saya rasa spec ini hanyalah dalam talian pada minggu tujuh. Saya fikir ia dipanggil pset6, walaupun walaupun kita berada di minggu ketujuh, yang ialah pengkomputeran bit. PENONTON: Tetapi yang saya maksudkan jika anda mahu kelihatan at-- jika anda mahu tarik versi kami laman web dari sever kita? Jadi seperti server.c adalah Serangga, bukan? Jika anda ingin melihat ini, seperti bagaimana ia memeriksa keluar? ANDI PENG: Oh, jadi sebenarnya Serangga, semua yang kita lakukan di sini adalah implementing-- sini, Saya akan pergi ke atas secara ringkas ini. Jadi untuk semua orang yang hanya mendapat seksyen, anda semua berada dalam nasib. Terdapat bahan yang sangat sedikit untuk benar-benar melindungi hari ini. Saya hanya akan menghabiskan seterusnya 20 minit akan lebih pset bantuan. Oleh kerana ada beberapa yang berguna fungsi yang akan membantu hidup anda. Dan mudah-mudahan, kita akan keluar dari sini dalam seperti 20 minit. OKAY. Jadi pset7 adalah salah. Walaupun kita berada pada minggu tujuh, ia sebenarnya pset6. Saya akan mengubah itu. Semua yang kita lakukan dalam pset6 mewujudkan pelayan web. Yang berbunyi super menakutkan. Dan terutama bagi mereka di antara kamu yang sudah melihat kod pengedaran, ada banyak kod, banyak kod. Tetapi sama sekali OK. Kerana cekal seluk sebahagian daripada sebenarnya mewujudkan pelayan itu dilakukan oleh kami. Semua yang anda benar-benar meminta lakukan pada pset ini hanya melakukan beberapa manipulasi rentetan dalam fail I / O. Ia sebenarnya seperti agak mudah. Oleh itu, apabila anda mula-mula turun bahawa- yang di sini sebenarnya telah dimuat turun yang Serangga dan dibawa melihat? Baiklah. Yeah. Ada seperti 500 baris kod bahawa anda akan menjadi seperti, apa yang sedang berlaku? Dan itu betul-betul halus. Pastikan anda menonton berjalan-lewat. Kerana David dan- Saya tidak tahu. Saya tidak fikir ia adalah yang Zamyla, yang satu ini. Tetapi saya rasa ada yang lain berjalan-lewat agak membantu dari segi hanya membiarkan anda tahu apa yang sedang berlaku di dalam kod anda. Dan ia benar-benar OK. Kerana empat fungsi bahawa anda diminta untuk melaksanakan sebenarnya telah sifar kaitan dengan pelayan yang sebenar. Apa yang mereka perlu lakukan adalah hanya menghuraikan rentetan yang berbeza, mencari melalui tali, untuk memastikan bahawa ia lakukan apa yang mereka sepatutnya lakukan. Jadi bagi maksud itu, terdapat beberapa fungsi yang sangat, sangat berguna, terutama bagi rentetan manipulasi, bahawa kita harus semua pergi ke bahawa saya fikir saya akan menjadi sangat berguna untuk anda semua belajar sebelum cuba pset. Dan mereka semua yang terkandung dalam perpustakaan string.h anda. Ada mungkin lebih berguna Fungsi Saya tidak dimasukkan di sini, kerana saya sama ada tidak pernah menggunakannya atau mungkin saya tidak tahu wujud. Jangan ragu untuk melihat melalui student.h. Oleh kerana ada akan menjadi banyak fungsi yang sangat berguna. Oleh itu, enam yang saya gunakan yang paling dalam saya Serangga apabila saya melakukannya ini minggu lalu adalah strtok, strchr, strrcher, strstr, strcasecmp dan strcpy. Dan supaya dua lepas mungkin kelihatan cukup biasa untuk sebahagian besar daripada anda. Kes Str membandingkan, semua hal ini adalah membandingkan tali untuk memeriksa mereka untuk kesaksamaan, termasuk kes. Dan strcpy hanya salinan satu rentetan ke dalam penampan. Dan supaya kedua-dua perlu kelihatan sangat biasa kepada anda semua pada ketika ini. Oleh kerana kita telah menggunakan mereka banyak, terutamanya bagi psets lepas. Tetapi empat pertama mungkin anda tidak pernah melihat sehingga sekarang. Tetapi saya akan hanya berjalan melalui mereka. Kerana mereka akan menjadikan kehidupan anda benar-benar, benar-benar mudah bagi- tidak mudah, tetapi lebih mudah untuk pset ini yang akan datang. OKAY. Jadi char * strtok, ini adalah fungsi definisi untuk fungsi ini terkandung dalam tali, h perpustakaan. Jika anda diberi input char * tali, yang hanya rentetan, atau char berterusan * deliminator, delim untuk jangka pendek, semua yang ia lakukan adalah melanggar yang lebih besar tali ke dalam satu siri apa yang kita panggil token dipisahkan dengan nilai tertentu. Jadi dalam erti kata, jika saya memberi anda section.7.php, ini adalah rentetan. Supaya akan menjadi jika saya lulus dalam ini sebagai str saya, char * str saya, jika deliminator saya dot, semua ini akan lakukan ialah carian melalui tali. Dan kali pertama ia melihat titik, ia hanya akan kembali ke penunjuk untuk cara yang lalu mendapati dalam rentetan sebelum ini. Jadi ia akan pergi di sini. Dan ia hanya akan memberi saya 7.php. Dan jika saya memanggil berfungsi sekali lagi, ia akan memberi saya hanya .php itu. Dan supaya semua fungsi ini adalah melakukan mogok rentetan yang lebih besar ke dalam tali yang lebih kecil bergantung kepada apa yang anda cari. Dan sebagainya sebagai contoh, dalam fungsi rupa sehingga anda jika anda ingin melihat apa yang watak-watak tertentu berlaku atau jika titik berlaku atau sambungan berlaku, fungsi ini akan menjadi agak berguna. Yeah. Tidak risau. Ini semua adalah- akan yeah, apa khabar? PENONTON: Jadi dalam baris pertama, jika kita menggunakan contoh ini, apa yang kita masukkan ke dalam itu? ANDI PENG: Ya. Anda hanya akan memanggil strtok delim rentetan koma. Dan tali adalah sama dengan section.7.php. Kemudian anda berada delim boleh menjadi sama dengan hanya dot. PENONTON: OK. ANDI PENG: Ya. Begitu sahaja. Semua fungsi-fungsi ini agak sama apabila kita pergi melalui mereka. Mereka hanya melakukan perkara-perkara yang sedikit berbeza. Tetapi mereka semua akan menjadikan kehidupan anda lebih mudah. Fungsi kedua, yang satu ini yang seperti super, super, super penting, adalah the-- memegang sehingga. Maaf. Carian Strchr untuk pertama occurrence-- sebenarnya, ya. Strchr adalah fungsi yang Saya pasti hanya pergi ke atas. Jadi tidak mengendahkan apa yang saya katakan untuk fungsi yang pertama. Ia sebenarnya dipanggil strchr. Jadi apa yang akan berlaku di sini adalah jika anda telah diberi satu rentetan dalam char c, ia hanya akan memberi dengan apa yang. Yeah. Jadi menganggapnya sebagai str, yang adalah rentetan dan chr sebagai char. Jadi apa yang anda cuba lakukan adalah carian untuk di mana char terletak dalam rentetan. Dan supaya ia mencari pertama berlakunya watak c dalam str tali. PENONTON: [didengar]. ANDI PENG: Yup. Dan kemudian jika ia tidak menemui itu, ia akan kembali NULL. Jadi sesuatu yang akan menjadi sangat berguna untuk anda semua dalam melakukan pset jika, katakan, anda cari yang lanjutan seperti .docx untuk Word yang dokumen atau .pdf untuk dokumen PDF, anda jenis boleh menggunakannya untuk melihat untuk apa yang ada selepas itu setiap kali anda melihat titik, bukan? Dan sebagainya cukup banyak, jika anda berjalan melalui majlis itu, jika ia kembali NULL, maka anda tahu bahawa ia tidak merasa dot, yang bermakna ini jelas bukan sambungan fail yang sah. Atau jika ia kembali sesuatu, maka anda tahu ia akan kembali apa sahaja yang sebenarnya selepas sambungan. Maka orang-orang di antara kamu yang mempunyai mula mencari melalui lookup dan menghuraikan, fungsi ini yang akan menjadi super berguna. Oleh itu, kita sebenarnya akan untuk menunjukkan menggunakan ini. Apa kata anda semua cuba menulis fungsi bool hukuman char * s yang hanya mengembalikan benar jika s adalah hukuman dan palsu sebaliknya. Maka tanda-tanda, anda akan untuk mungkin menggunakan strchr. Atau anda hanya mencari di tali untuk watak tertentu. Dan sebagainya dalam ayat, apa yang memisahkan ayat daripada bukan hukuman-, apa watak tertentu? PENONTON: ruang A. ANDI PENG: ruang A, bukan? Dan supaya apa yang kita mungkin akan mahu lakukan dalam fungsi ini di sini? PENONTON: [didengar]. ANDI PENG: Kami akan mahu strchr rentetan bagi kehadiran ruang. Kerana jika ia mengembalikan sesuatu, maka kita tahu bahawa ia akan ayat. Ini bermakna bahawa kita mesti mempunyai ruang dalam rentetan ini. Jika tidak ada ruang, maka kita tahu yang, hei, rasa ia bukan rentetan. Ia mungkin hanya satu perkataan benar-benar panjang. Jadi saya akan memberikan anda semua pasangan minit untuk menulis fungsi ini. Yeah. PENONTON: Adakah anda mendapat rentetan ini dari pengguna? ANDI PENG: Ya. Jadi ini adalah hanya satu majlis. Cuba bayangkan, dalam fungsi utama anda anda sudah ada-- mari kita pergi sini. OKAY. Oleh itu, saya telah menulis program ini di mana Saya mempunyai fungsi utama saya di mana Saya baru sahaja mencipta dua tali. Yang pertama adalah Hi, nama saya adalah Andi-- jelas, ayat. Yang kedua-Ku adil Andi, jelas tidak menjatuhkan hukuman. Dan jadi saya menjalankan kedua-dua mereka tali melalui fungsi ini. Saya mahu anda semua untuk menulis kalimat sejuk. Dan saya menyimpan nilai-nilai, dan kemudian hanya mencetak mereka keluar. Jadi berfikir bahawa pengguna adalah akan lulus dalam rentetan. Dan kemudian anda akan pada dasarnya memikirkan jika ia adalah ayat atau tidak dan kembali benar atau palsu dengan sewajarnya. Jika anda semua ingin memberikan ibu jari atau ekor, kepala mengangguk, sesiapa yang bersedia untuk memulakan ini, yang akan menjadi baik. Mungkin seperti 30 saat lagi? Baiklah. Mari kita lihat jika anda boleh cuba menulis fungsi ini. Jadi pseudo coding-- saya hanya akan sejenis berjalan melalui ini sekarang. Cukup banyak, kita tahu fungsi yang perlu kita gunakan. Kami akan memanggil fungsi yang pada tali dan mencari ruang kami. Jika ia mengembalikan sesuatu, maka kita mesti tahu bahawa, jelas, ini adalah hukuman. Kerana ada ruang. Kemudian kita akan kembali benar. Yang lain, kami akan kembali palsu. Adakah sesiapa yang mahu memberi saya garis pertama kod bahawa kita sebenarnya akan gunakan untuk menulis ini? Ini sebenarnya yang paling sukar baris kod juga. Yeah. PENONTON: Jika strtok s-- ANDI PENG: Hanya strchr. PENONTON: [interposing SUARA] ruang tidak sama dengan nol. ANDI PENG: Cool. Betul-betul betul. Semua orang faham bahawa baris pertama? Kami akan memanggil strstr, yang merupakan fungsi yang mencari rentetan s untuk char ruang. Dan jika ia mendapati, ia akan kembali penunjuk kepada mana yang. Jika ia tidak merasa, ia akan kembali NULL. Jadi, jika ia kembali apa-apa selain daripada NULL, maka kita tahu ia mendapati ruang. Adakah ini masuk akal? Sejuk. Baiklah. Jadi, jika kita tahu ia mendapati ruang, apa yang kita mahu lakukan? PENONTON: Kembali benar. ANDI PENG: Yup. Kembali benar. Dan kemudian, seseorang yang mahu selesaikan majlis itu untuk saya? Yeah. Yang lain, begitu sahaja. Dan cuba menyusun ini. Ya. Jadi seperti yang anda semua boleh lihat dari output, ingat Booleans dalam C sentiasa aktif dalam perduaan. 1 adalah benar. 0 adalah palsu. Jika kita menjalankan ini fungsi pada tali satu, yang adalah Hi, Andi-- nama saya jelas, hasil yang sentence-- dicetak untuk 1 yang benar. Yang kedua, yang hanya Pendek kata, hasil carian mana dicetak kepada 0, yang palsu. Hati semua orang jelas tentang bagaimana fungsi ini ditulis? Yeah. PENONTON: Bolehkah kami juga melakukan, bukan tidak sama tidak, sama sama dengan 0, supaya ia sama dengan? ANDI PENG: No. Kerana strchr adalah fungsi. Saya akan ke belakang untuk ini. Jadi apa jenis pulangan fungsi strchr kita? PENONTON: Oh, OK. Atau NULL. ANDI PENG: Ya. Ia adalah satu char * yang memberitahu saya bahawa apa sahaja fungsi ini akan kembali, ia akan menjadi penunjuk. Sama ada penunjuk akan menjadi menunjuk ke mana ia mendapati ia, atau ia akan kembali penunjuk kepada NULL. Dalam keadaan sama ada, ia akan untuk kembali penunjuk kepada sesuatu. Dan jadi jika anda adalah untuk menyamakan ini sama, sama, 0, anda akan mendapat ralat kompilasi. Kerana ia akan kembali penunjuk. Dan anda akan cuba untuk membandingkan penunjuk kepada integer. Dan komputer tidak akan suka itu. Ya, betul-betul. Sejuk. Semua orang yang baik? Dan kedua, kita akan pergi lebih strstr fungsi dipanggil. Jangan bimbang jika ini fungsi yang mengelirukan anda. Mereka mengelirukan saya. Oleh itu, anda semua boleh lihat, mereka semua bunyi cukup banyak yang sama. Hanya setiap kali anda berada keliru, tarik ke atas perpustakaan string.h. Dan anda semua boleh menyusun di mana seseorang yang. Jadi strstr, apa yang dilakukan adalah Carian rentetan untuk rentetan lain secara keseluruhan. Jadi di mana strchr hanya Carian untuk bersifat tunggal, Carian strstr untuk seluruh tali. Jadi saya mahu melihat, saya tidak tahu, Hi, nama saya Andi. Dan nama kawan baik saya juga adalah Andi. Jika saya mahu mencari dalam ini hukuman bagi perkataan keseluruhan Andi, jarum saya akan jadi apa sahaja yang anda cari. Dan sisa rumput kering anda adalah apa sahaja berkualiti tinggi di dalam. Jadi, jika anda sedang mencari satu perkataan tertentu dalam ayat, perkataan yang akan menjadi jarum anda. Dan kemudian hukuman itu sendiri akan menjadi sisa rumput kering anda. Dan sebagainya ia hanya mencari kejadian pertama jarum tali dalam sisa rumput kering tali. Ia mengembalikan penunjuk untuk kejadian pertama. Kecuali, ingat dalam kes ini, ia adalah Kejadian pertama bagi keseluruhan rentetan yang anda sedang mencari untuk, bukan sahaja watak. Dan sebagainya ini adalah hampir perkara yang sama seperti fungsi kita hanya melakukan ini, hanya dengan kekhususan sedikit lebih. Kerana anda sedang mencari lebih daripada satu aksara. Dan penggunaan adalah sama sebagai salah satu yang kita lakukan. Semua orang OK dengan ini? OKAY. Yang terakhir kita akan pergi atas adalah strrchr, yang tidak dikelirukan dengan strstr atau dengan strchr. strrchr mempunyai r tambahan di sana. Berhati-hati apabila anda menaip. Anda mungkin mendapati diri anda termasuk r atau lebih tidak termasuk r yang, dan kemudian fungsi anda adalah tidak perlu lagi tidak akan berjaya. Dan anda akan menjadi keliru. Berhati-hati bahawa anda mengeja semua fungsi ini betul. Jadi strrchr adalah tepat perkara yang sama seperti strchr kecuali ia mencari bukan yang pertama berlakunya sesuatu yang tertentu, tetapi kejadian yang lalu. Dan sebagainya, dalam erti kata itu, ia hampir yang sama. Tetapi bukan bergerak mengemukakan dalam rentetan, anda akan bergerak ke belakang dalam rentetan. Perkara yang tepat sama, anda hanya mencari dalam susunan yang berbeza. Dan jadi ini boleh menjadi super, super berguna untuk lookup anda fungsi, yang pertama fungsi pada pset anda. Mari kita berpura-pura bahawa kami perlu untuk menulis fungsi sambungan tidak sah di mana kita lulus char berterusan * nama fail, hanya tali, nama fail, yang mengambil masa dalam nama dan cetakan keluar lanjutan fail itu. Jadi, sebagai contoh, jika saya lulus dalam rentetan pset7.zip, ia akan mencetak hanya lanjutan, yang .zip. Dan ini akan bekerja untuk apa-apa jenis sambungan, .docx untuk Word atau .pdf untuk PDF fail atau .html untuk fail HTML. Cukup banyak, menulis fungsi yang boleh berbuat demikian. Saya sebenarnya akan beralih kepada IDE. Ia tidak load-- ada kita pergi. Jadi semua yang saya lakukan di sini adalah mencipta * char, rentetan pertama, dipanggil pset7.zip. Saya akan zum masuk. Saya telah membuat beberapa siri kedua dipanggil finalpaper.docx. Dan menulis saya fungsi yang apabila dipanggil akan hanya mencetak sambungan nama fail. Mungkin mengambil masa beberapa minit untuk berfikir tentang bagaimana anda akan melakukannya. Sedikit lebih mencabar daripada yang terakhir, tetapi penggunaan adalah hampir betul-betul sama. Yeah. Oleh itu suratkanlah lanjutan fungsi dipanggil bahawa, jika aku memberi nama fail, jika saya memberikan anda pset7.zip-- Saya mahu anda untuk mencetak hanya .zip. Dan apabila aku memberi suka finalpaper.docx, hanya mencetak .docx itu, hanya lanjutan daripada apa sahaja fail. Ini sebenarnya hanya mengambil masa dua baris kod. Oleh itu, cuba untuk melihat jika anda mungkin boleh melakukannya dalam itu. Sebenarnya, ia hanya mengambil masa satu baris kod. Tetapi dua baris mungkin lebih standard. Apa fungsi kita mungkin akan mahu untuk memanggil? PENONTON: strrchr. ANDI PENG: strrchr, betul. Oleh kerana kita sedang dari kiri ke kanan. Saya tidak memberikan anda semua contoh seperti ini, tetapi jika aku telah memberi contoh seperti www.apple.com dan saya hanya mahu .com, ia akan menjadi satu contoh di mana anda mahu panggil peristiwa terakhir tempoh dan bukan yang pertama, bukan? Sekiranya kamu strchr panggilan, ia akan telah diberikan anda apple.com itu. Jika anda dipanggil strrchr, ia telah memberikan kepadamu Com. Dan jadi berhati-hati di mana ways-- dalam contoh saya, anda boleh mungkin boleh mempunyai hanya ditulis dengan menggunakan strchr, kerana hanya ada satu titik. Tetapi dalam keadaan lain, yang mungkin tidak kes itu. Dan supaya sentiasa cuba untuk mereka bentuk kod anda dengan baik, jadi bahawa- ya? PENONTON: Jadi dalam Sebagai contoh, anda hanya berkata, apabila anda strrchr ia akan memberikan anda .com atau hanya datang? ANDI PENG: Ia akan memberi anda Com. PENONTON: OK. ANDI PENG: Ya. Ia menjurus kepada di mana ia mendapati ia. Yeah. 30 saat mungkin? Yeah. Semua orang yang baik atau mungkin sedikit lebih masa? Mengangkat tangan? Mengangkat kepala? Sejuk. Sesiapa yang mahu memberikan saya yang pertama baris kod untuk program ini? PENONTON: [didengar]. ANDI PENG: Jadi pertama sekali, mari kita mungkin memecahkan ini ke bawah. Jadi apa jenis pulangan strrchr? Mari kita kembali. strrchr, apakah jenis pulangan? PENONTON: Char * ANDI PENG: Ia adalah satu char *, bukan? Yang bermakna bahawa anda mungkin akan untuk ingin membuat char lain * untuk jenis kedai apabila ia kembali, kan? Kerana jika anda memanggil strrchr majlis itu, ia akan memberikan anda satu penunjuk kepada di mana sahaja ia mendapati bahawa tempoh lepas, bukan? Tetapi anda akan mahu menyimpan di tempat yang, bukan? Dan jadi bagaimana kita memberi kod ini ke dalam program kami? PENONTON: Anda membuat char * [didengar]. ANDI PENG: Ya. PENONTON: [didengar]. ANDI PENG: strrchr. Yeah. Oh, terlepas r di sana. PENONTON: Nama fail [didengar]. Apakah ia? Oh, Ia hanya s. ANDI PENG: Oh, ia hanya s. Yup, maaf. Salah saya. Contoh tidak sepadan. PENONTON: Kemudian dot. ANDI PENG: Yup. Berhati-hati apabila anda semua ialah- di sini, biarlah saya zum masuk. Di sana kami pergi. Berhati-hati apabila anda semua menaip, terutamanya apabila yang anda lakukan hanya char. Ia benar-benar mudah untuk sengaja hanya melakukan tanda petik bukannya tunggal. Itu tidak akan berfungsi. Pengkompil anda akan mengadu. Dan fungsi anda hanya tidak akan berjalan. Dan supaya berhati-hati apabila anda melakukan perkara-perkara dengan aksara bahawa itu petikan tunggal. Dan begitu juga baris ini kod masuk akal untuk semua orang? Kami mewujudkan penunjuk char *. Kerana pulangan strrchr sesuatu jenis penunjuk. Dan dengan itu kita akan memanggil strchr pada s, yang merupakan tali, fail nama, bahawa kita lulus dalam. Dan kita cari yang lalu contoh tempoh, yang hanya petikan tunggal dot petikan tunggal. Yeah. PENONTON: Bilakah kita menggunakan tanda petik dan apabila kita menggunakan tanda petikan tunggal? ANDI PENG: Ya. Sebut harga supaya double selalu digunakan apabila anda mempunyai rentetan yang lebih daripada hanya satu. Jadi, jika anda lakukan strstr, yang merupakan salah satu yang anda mencari tali untuk tali, anda akan lulus dalam tanda petik. Tetapi bila-bila masa ia hanya watak tunggal, yang anda mahu lakukan petikan tunggal. Ia adalah satu perkara yang baik untuk diingat. Jadi sekarang kita mempunyai kami penunjuk, apa yang kita lakukan dengannya? Saya meminta anda semua untuk mencetak ia keluar, kan? Jadi [didengar], anda mahu memberi saya baris kod? PENONTON: printf-- ANDI PENG: Ya. PENONTON: --you memerlukan pemegang tempat. ANDI PENG: Yup. PENONTON: Cetak pemegang tempat itu. Saya tidak tahu apa yang berlaku di Pemegang tetapi titik kepadanya. OKAY. Mari kita skip bahawa buat masa itu. PENONTON: Kemudian comma-- ANDI PENG: Penunjuk, bukan? PENONTON: Pointer, yup. ANDI PENG: Jadi jenis soalan helah, mempunyai kaitan dengan petunjuk dan tali yang kita telah jenis bercakap tentang sudah. Apakah jenis pemegang tempat kita perlu untuk penunjuk untuk char *? PENONTON: [didengar]. ANDI PENG: Ya. Ia lebih mudah daripada anda semua fikir ia. PENONTON: String? ANDI PENG: Ia hanya tali, betul-betul. Kerana ingat tali tidak benar-benar wujud. A char * adalah tepat Perkara yang sama sebagai rentetan. Dan supaya benar-benar s ini adalah apa yang sepatutnya telah digunakan selama ini. OKAY. Mari kita lihat jika kita boleh cuba berjalan ini. Mari kita buat sambungan make. Sejuk. Kalian melihat bagaimana saya diluluskan di psset7.zip dan finalpaper.docx itu, dan ia hanya mencetak keluar zip dan .docx itu? Masuk akal? OK Jadi saya fikir dalam wajah anda fungsi dalam pset anda anda akan ditanya sama ada rentetan mempunyai akhir yang tertentu, anda perlu memberi kod ralat tertentu. Dan hal ini akan menjadi agak besar. Kerana jika anda boleh memikirkan apa lanjutan adalah, anda boleh bandingkan bahawa lanjutan untuk melihat jika ia sepadan sehingga dengan sambungan tertentu. Dan kemudian anda boleh kembali mesej ralat, bukan? Yeah. PENONTON: Oleh itu, kita tidak perlu menambah 1 atau apa-apa? Penunjuk akan pergi ke the-- ANDI PENG: Nope. PENONTON: --point selepas itu. ANDI PENG: Ya. Ia menunjuk dengan tepat untuk di mana kejadian itu. Jadi, sebagai contoh di sini, kami mencari tempoh tersebut. Oleh itu, ia akan kembali penunjuk kepada tempoh tersebut. Dan kemudian ia akan mencetak keluar bermula dari tempoh tersebut. Jadi anda tidak perlu menambah 1. Walaupun, ia benar-benar baik untuk, jika anda pernah pasti, hanya jenis untuk menguji ia keluar sendiri. Membina program sampel. Menguji ia keluar diri sendiri dan melihat di mana ia percetakan. Itu juga bukan cara yang tidak baik untuk melakukannya. Sejuk. Dan itu cukup banyak semua Saya terpaksa untuk anda semua hari ini. Kami melakukan banyak perkara pset hari ini. Oleh itu, apabila ragu-ragu, seperti Saya berkata, sentiasa melihat ke atas perpustakaan string.h untuk pset ini. Terdapat akan menjadi banyak majlis di sana yang mungkin berguna. Mungkin ada yang tidak berguna. Saya tidak benar-benar tahu. Wade melaluinya, ada sejumlah besar daripada mereka. strstr, strchr, strrchr adalah super, super berguna, serta yang strcpys dan strcasecmps yang kami telah digunakan. Ia hanya banyak main-main dengan tali, menentukan jika mereka sama, mendapatkan barangan daripada tali, dan dapat membuka fail dengan betul. Ia banyak fail I / O. Serangga yang benar-benar tidak yang buruk. Anda akan mengambil melihat, memuat turun, dan melihat sejumlah besar kod. Jangan bimbang, kod yang anda benar-benar menulis tidak buruk sama sekali. Jika sesiapa yang mempunyai isu-isu dengan mereka pelayan, datang jumpa saya selepas seksyen. Minta maaf sekali lagi kerana tidak membawa gula-gula kepada Halloween. Saya tidak tahu apa yang salah dengan saya. Tetapi kita akan mempunyai dua gula-gula yang lain kali. Dan semoga berjaya dalam Serangga anda minggu ini. Ya.