ANDI PENG: Kami hampir melalui semua psets. Bahkan, kami melalui mayoritas dari psets paling sulit. Jadi kita sebenarnya hanya akan jenis angin melalui beberapa minggu berikutnya. Kita akan mulai berbicara tentang kami proyek akhir, peristiwa datang dalam beberapa minggu ke depan. Dan hidup akan mudah. Jadi tidak terlalu banyak hari ini. Mudah-mudahan, akan benar-benar angin melalui agenda untuk hari ini, dan kemudian keluar dari sini dengan beberapa waktu luang. Juga, saya ingin meminta maaf kurangnya permen hari ini. Saya tidak tahu mengapa. Tapi dalam minggu menjelang Halloween, aku akan melupakan permen. Jadi aku benar-benar hanya besar Kekecewaan kepada Anda sekarang. Karena aku benar-benar ingat permen untuk setiap kelas tunggal, tetapi Halloween. Tapi minggu depan, saya akan membawa dua kali lipat jumlah permen untuk membuat untuk itu, semua untuk Anda. Ini akan menjadi besar. Jadi saya punya beberapa pengumuman mengenai beberapa penjadwalan. Saya memiliki beberapa masalah penjadwalan. Kemudian kita akan beralih ke berbicara tentang apa yang disebut chmod. Kita akan berbicara tentang cepat TCP / IP HTTP. Dan kemudian kita akan kode kami situs sendiri menggunakan HTML dan CSS. Dan kemudian aku benar-benar akan meninggalkan mungkin seperti 20 menit untuk berbicara tentang pset6. Karena pset6 sebenarnya banyak hal-hal yang telah kita lihat sebelumnya, tapi saya ingin menyegarkan beberapa konsep-konsep serta mengajarkan beberapa fungsi baru. Keren. Jadi pertama-tama, Selamat datang kembali dari istirahat. Kuharap kau istirahat itu menyenangkan. Akan kau lakukan untuk istirahat? AUDIENCE: Pergi ke New York. ANDI PENG: Anda pergi ke New York? Saya pikir setengah sekolah kami pergi ke New York. Ya, benar. Aku menghabiskan sebagian besar istirahat saya menetap di tempat tidur Netflixing. Dan itu adalah waktu yang baik. Tapi kami sekarang kembali, kembali sesi, kembali ayunan hal. Kami memiliki pset karena Jumat ini pada siang hari. Saya pikir Anda sudah sudah mengambil kuis Anda, ya? Jadi siapa saja yang memiliki tidak memiliki kuis mereka, silahkan datang dan mendapatkan kuis Anda dari saya di akhir bagian. Atau melacak saya di kampus. Aku akan memilikinya dengan saya di suatu tempat. Tugas akhir kami usulan pra-juga. Jadi bagi kita yang tidak pernah mengambil kelas ini sebelum, batu penjuru dari CS50 sangat banyak memuncak dalam ini besar proyek yang mengusulkan siswa. Dan pra-proposal, hanya ide umum dari apa yang mungkin ingin lakukan untuk mereka proyek, gagasan bahwa ini disebabkan Senin, Senin depan pada siang hari. Jadi cukup banyak, saya pikir David akan berbicara lebih lanjut tentang ini dalam kuliah jika dia belum melakukannya. Dan ada halaman yang solid di website kami menjelaskan semua persyaratan proyek. Tapi pada dasarnya, memilih setiap topik yang Anda sudah telah tertarik seluruh waktu Anda di sini di CS, apakah itu game atau desain atau video atau apa pun. Dan Anda bisa benar-benar jenis sekarang menerapkan beberapa pelajaran bahwa kita telah belajar di sini di CS50-- hi, welcome-- untuk cukup banyak melakukan proyek akhir pilihan Anda. Semua itu karena Senin adalah hanya uraian singkat melalui email bagi saya, kalimat cepat, seperti, hei, Andi, Aku benar-benar tertarik dalam merancang permainan yang melakukan ini untuk iOS. Keren. Biarkan aku awal singkat Anda ide untuk proyek akhir Anda. Dan kami akan berbicara melalui apakah atau tidak yang sebenarnya adalah ide yang baik atau tidak, jika itu ide layak atau tidak. Tapi hanya pra-proposal adalah karena Senin depan. pset6, web-- indah kami yang salah. Pset7? pset6? Ini pset6, kan? pset6, web server kami, adalah karena Jumat siang dengan hari akhir. Jam kantor melanjutkan biasanya dari Senin Kamis 8:00-11:00 minggu ini. Saya pikir Commons untuk tiga malam berikutnya. Keren. Sebelum kita memiliki ke dalam bahan, apakah ada memiliki pertanyaan, lelucon, cerita? Apa yang Anda lakukan untuk musim gugur istirahat? AUDIENCE: Apa yang saya lakukan? ANDI PENG: Sudah itu usia yang lalu sebenarnya. Christabel pergi ke New York. Aku tinggal di sini dan Netflixed. AUDIENCE: Oh, ya aku di sini. ANDI PENG: Oh, OK. AUDIENCE: Saya tidak ingat apa khusus. ANDI PENG: Itu OK. AUDIENCE: Netflixing mungkin. ANDI PENG: Netflixing. Ya, itu adalah waktu yang baik. OKE. Baiklah. Pertanyaan sebelum kita melompat ke materi? Juga, kita akan mencoba untuk kecepatan melalui bagian hari ini, tidak terlalu banyak untuk menutupi. Dan mudah-mudahan, kita akan mendapatkan di sini sedikit lebih awal. Maaf untuk tidak permen, juga. Aku kekecewaan, terutama selama Halloween. Baiklah. Keren. Jadi kita akan mulai berbicara tentang argumen baris perintah disebut chmod. chmod, semua itu adalah hanya sebuah sistem Unix panggilan yang dilakukan dari baris perintah untuk mengubah hak akses file. Jadi misalnya, kami sudah semua ditemui halaman seperti ini mungkin kadang-kadang di rentang hidup kami menjadi internet pengguna, di mana web server kami memiliki memberi kita kesalahan Terlarang. Anda tidak memiliki izin untuk mengakses, yadda, yadda, yadda, di server ini. Semua yang benar-benar berarti adalah bahwa izin yang melekat pada apapun Halaman yang Anda mencoba untuk mengakses tidak terbuka untuk Anda. Jadi cukup banyak, chmod adalah cara di mana kita bisa memodifikasi hak akses sistem untuk memberikan setiap orang, pengguna, kelompok, atau dunia, atau Kombinasi akses mereka untuk file tertentu, direktori, apa benar-benar, apapun sistem pada sebuah sistem operasi. Jadi jika ada orang memiliki komputer jika Anda merasa seperti berikut bersama dengan saya hari ini, benar-benar merasa bebas untuk hanya mengetik hal di. Jika tidak, Anda hanya bisa bergaul. Jadi aku akan benar-benar menarik terminal saya sekarang. Jadi perintah untuk menjalankan chmod, atau setidaknya hanya daftar izin dari Anda direktori file, hanya ls-l. Seperti yang Anda lihat, sekelompok hal muncul yang sebagian besar adalah penting bagi kami di sisi kiri di sini. Kalian melihat sekelompok rs, ws, 1 /. Ya. Mereka pada dasarnya hanya semua hak akses file untuk menjelaskan apa direktori tertentu dan file dalam sistem Anda miliki. Jadi mari kita kembali ke power point di sini. Jadi selain nama file seperti kalian bisa melihat di sebelah kanan, kami sedang mencari untuk melihat dasarnya hanya kolom di sebelah kiri. Jadi selain hanya nama file, kita dapat melihat hak akses file, mereka Kelompok pemilik, nama grup, tanggal bahwa file terakhir dimodifikasi, dan lain-lain. Anda dapat melihat banyak hal menggunakan chmod. Jadi cara yang kita baca chmod adalah bahwa huruf pertama kita cukup banyak mengabaikan dalam hal izin membaca. Huruf pertama hanya memberitahu kita apa jenis sistem kita mengakses. d, dalam hal ini, adalah folder atau direktori. Jadi kita tahu bahwa saat ini ruang kerja saya Bagian tujuh adalah sebuah direktori. Dan kemudian Anda melihat tiga triad, pada dasarnya hanya tiga set tiga karakter. Dan Anda bisa memikirkan setiap sebagai sedikit. Jadi Anda hanya memiliki tiga set tiga bit, sembilan bit secara total. Anda memperlakukan mereka dalam kelompok tiga. Jadi kelompok pertama dari tiga adalah selalu izin pengguna Anda. Kelompok kedua Anda tiga adalah selalu akses group Anda. Dan set ketiga Anda dari tiga selalu seperti dunia, di mana-mana izin. Jadi saya kira mudah Pertanyaannya adalah apa yang perbedaan antara pengguna dan kelompok. Perbedaan utama antara pengguna dan kelompok adalah bahwa pengguna hanya Anda pribadi mengakses apapun itu sekarang. Kelompok A dapat jika Anda memiliki beberapa pengguna pada satu komputer, misalnya. Semua dari mereka dapat diperlakukan sebagai sebuah kelompok. Dan kemudian dunia adalah hanya dunia, semua orang. Jadi kita bisa lihat nanti bagaimana kita bisa memodifikasi mereka ke dalam hak akses yang berbeda. Jadi cukup banyak, kami akan masih fokus pada bagian di sebelah kiri, di mana untuk direktori CS50 kita lihat drwx, di mana r hanya berarti itu dibaca. W hanya berarti itu ditulis. Dan kemudian x hanya berarti itu dieksekusi. Anda akan berpikir itu semacam dari tidak masuk akal. Itu harus e. Tapi x sebenarnya jenis bekerja sedikit lebih baik, karena Anda dapat mengingatnya lebih baik. Jadi tiga jenis hal yang Anda dapat melakukannya, Anda baik dapat membaca file, Anda dapat memiliki izin untuk menulis mengajukan, atau Anda bisa memiliki izin untuk mengeksekusi file. Dan cara yang kita benar-benar mewakili mereka dalam bit adalah nomor 4, 2, dan 1. Jadi apa pun yang dibaca adalah diwakili oleh jumlah 4. Apa pun yang ditulis diwakili oleh 2. Dan apa pun yang dieksekusi yang diwakili oleh 1. Jadi dalam hal ini, kita juga bisa mewakili Numbers ini hi, menyambut, dengan cara yang berbeda. Maaf. Sebelum semua orang, aku akan meminta maaf atas nama orang memasuki kelas sekarang. Saya lupa permen hari ini. Maaf aku gagal minggu ini Halloween. Aku akan membawa dua kali lipat jumlah permen waktu berikutnya untuk membuat untuk itu. Tapi anyways, maaf tentang itu guys, maaf. Jadi cara yang kita bisa benar-benar masukan pada perintah kami argumen adalah kita dapat melakukan chmod hak akses kelompok garis miring, di mana kelompok ini hanya apa pun Kelompok kami mencoba untuk mengubah. Dan hak akses yang apa pun yang kita ingin menambahkan untuk itu. Jadi misalnya, ditambah menambahkan izin, dan kurangi dengan menghapus izin. Dan jenis kelompok kami memiliki kami untuk semua, u bagi pengguna, g untuk kelompok, atau o untuk orang lain. Ini sedikit abstrak sekarang. Tapi kami akan pergi selama beberapa contoh hanya untuk menunjukkan cepat nyata ini. Semua orang yang baik ini slide, jadi saya bisa melanjutkan? Keren. Jadi misalnya, rwx. Sebelum kita berbicara tentang apa yang diwakilinya, pertama-tama apa rwx artinya? Jika Anda melihat bahwa ini tertentu File memiliki izin dari rwx, apa artinya itu orang bisa dapat lakukan? AUDIENCE: Baca, menulis dan mengeksekusi. ANDI PENG: Ya, persis. Anda dapat membaca menulis dan mengeksekusi. Karena semua tiga dari mereka karakter yang hadir. Jadi jika kita pergi ke depan dan berbicara tentang hal ini dalam hal bit, rwx juga dapat direpresentasikan sebagai 700. Karena seperti yang Anda lihat dalam semacam file izin direktori, ada tiga triad. Dalam hal ini, hanya yang pertama triad memiliki apa pun di sana. Jadi dalam hal ini, r adalah 4, w adalah 2, dan x adalah 1. Jika Anda menambahkan mereka bersama-sama, itu 7. Dan jadi jika Anda mengkonversi itu ke biner, itu 700. Karena 7 adalah triad pertama. 0, tidak ada yang hadir di triad kedua. Dan kemudian tidak ada yang hadir di triad ketiga, jadi itu 0 lain. Jadi dalam arti yang sama, sekelompok triad dapat direpresentasikan hanya dalam bit, hanya dalam biner juga. Jadi 700 berarti hal yang sama persis seperti rwx ------ dalam hal perizinan. Semua orang yang jelas tentang itu? Keren. Dan chmod 111 akan memberikan yang izin untuk file? Memberikan kalian beberapa detik untuk mengkonversi ini. Ingat, pertama triad adalah bagi pengguna. Triad kedua adalah untuk grup. Dan triad ketiga adalah untuk semua orang. Dan chmod 111 akan memberikan yang jenis perizinan dan kepada siapa? Mengambil beberapa detik untuk berpikir tentang hal ini dan kembali. Ya. AUDIENCE: Jadi semua orang bisa melaksanakannya. ANDI PENG: Yup, persis. AUDIENCE: Tapi tidak ada yang bisa membaca atau menulis. ANDI PENG: Dan merasa bebas untuk menjelaskan kepada semua orang bagaimana Anda sampai pada kesimpulan itu. AUDIENCE: Nah, untuk pengguna, kelompok, dan dunia, itu semua 1, yang merupakan kode untuk dieksekusi. ANDI PENG: Ya, persis. Jadi 1, dalam hal ini, semua kita tahu adalah bahwa itu adalah kode dieksekusi. Karena membaca adalah 4. Menulis adalah 2. Dan dieksekusi adalah 1. Jadi ini semua tiga triad adalah 1, yang berarti bahwa untuk dunia, untuk pengguna, dan untuk kelompok, mereka semua executable. Semua orang baik dengan itu? OKE. Dan cara kedua bahwa kita benar-benar dapat menulis ini juga adalah Anda hanya bisa melakukan chmod plus x. berarti semua atau setiap orang. Ditambah berarti memberikan izin untuk. Dan kemudian x berarti dieksekusi. Jadi ada dua perintah sebenarnya identik. Jadi jika Anda ingin menjalankan ini di dalam terminal, Anda lakukan chmod 111, nama direktori atau file Anda. Atau Anda dapat melakukan chmod plus x, nama file direktori Anda. Hal yang sama, hanya cara yang lebih mudah, mungkin, untuk beberapa untuk mewakili atau perubahan hak akses file. Setiap satu OK dengan chmod sebelum kita melanjutkan? Keren. Jadi sekarang kita akan menuju ke beberapa slide konsep yang sangat abstrak bahwa aku cukup banyak akan angin melalui. Dan itu benar-benar OK jika Anda tidak mengerti segalanya. Bahkan sekarang, aku masih tidak benar-benar memahami segala sesuatu sepenuhnya. Tapi lebih untuk mendapatkan pemahaman tingkat atas bagaimana beberapa hal bekerja. Jadi kita akan berbicara cepat tentang TCP / IP, yang hanya Transmission Control Protokol memangkas Internet Protocol. Ingat dari kuliah, David, dia mengajarkan contoh di mana ia lulus catatan dalam amplop up seperti bagian atas ruang kuliah? Jadi di auditorium sekolah hukum David menunjukkan dasarnya bagaimana TCP / IP bekerja di arti bahwa semua itu adalah adalah cara untuk memastikan bahwa data telah disampaikan di server atau di internet. Jadi dalam contoh amplop dan pesan, pengguna di akhir bisa melihat bahwa, oh, saya perlu menerima empat paket informasi. Tapi saya sebenarnya hanya menerima tiga. Itu berarti saya harus kehilangan satu. Dan satu tidak disampaikan. Dan TCP / IP di internet, melalui komputer Anda dan server, melakukan hal yang sama persis. Semua hal ini adalah menentukan kerangka di mana data yang hilang paket dapat membenci dan diterima. Seperti di internet ketika Anda mencoba untuk mengakses file secara online atau mengirim file ke teman Anda atau melihat web browser, ribuan miliaran dan miliaran dari byte informasi ditransfer per milidetik. Dan itu benar-benar, benar-benar membingungkan. Dan itu benar-benar sulit untuk benar-benar tahu apa yang telah dikirim dan apa yang belum dikirim. Dan TCP / IP hanya menetapkan kerangka kohesif di mana web Anda browser dan server Anda dapat jenis berkomunikasi satu sama lain, hanya memastikan bahwa paket yang semua di sini dan tidak ada yang hilang dan semua data yang Anda minta sebenarnya tampil sebagaimana mestinya. Semua orang OK pada hal itu sangat tingkat tinggi singkat mengerti? Keren. Jadi kita akan pindah dalam berbicara tentang HTTP, yang hanya Hypertext Transfer Protocol. HTTP, semua itu adalah apa setiap halaman atau file diakses di website Anda, server mengembalikan sebuah HTTP kode status respon permintaan tersebut memastikan bahwa baik, oh, permintaan ini pergi melalui. Dan semuanya ditampilkan dengan benar. Atau, oh, tidak, 404. Ada yang salah. Oh, aku tidak bisa ditampilkan. Semua itu adalah bahwa apa pun Anda mencoba untuk mengakses, digunakan sebagai pengguna mencoba untuk mengakses, pada internet-- hanya memastikan bahwa Anda juga harus berhasil diakses apa pun itu atau tidak berhasil diakses apa pun itu. Dan status HTTP kode hanya menyediakan sarana untuk dapat mengetahui apakah atau tidak itu berhasil atau tidak. Jadi misalnya, permintaan contoh. Anda bisa lihat di sini itu biasanya biasanya empat baris. Kami memiliki GET HTTP 1.1, yang hanya URL permintaan metode, protokol versi, nama field, dan nilai lapangan. Jadi tidak perlu benar-benar menghafal apa pun di sini. Hanya jenis membiasakan diri Anda dengan cara ini terlihat. Dalam contoh ini, permintaan metode URL hanya permintaan apapun Anda mengirim server. Seperti, hey, server, saya benar-benar ingin Akses yadda, yadda, yadda, halaman HTTP. Versi protokol hanya apa pun versi host atau server Anda menggunakan untuk mengakses informasi. Nama field adalah situs atau URL yang Anda mencoba untuk mengakses, dalam kasus ini, www.apple.com. Dan nilai lapangan hanya biasanya nama, nilai. Dan dapat apapun kombinasi huruf atau angka atau apa pun. Jadi permintaan yang khas, sehingga apa komputer Anda benar-benar mengirimkan ke server yang mengatakan, hei, Anda tahu apa yang saya butuhkan ini ditampilkan, itulah jenis permintaan bahwa mereka benar-benar menerima. Respon contoh dari apa yang Server akan mengirimkan kembali kepada Anda akan cukup banyak hal yang sama, kecuali dengan kode status di bagian atas. Jadi 200, 2 0 0 selalu status kode untuk OK. Seperti, OK, permintaan ini pergi melalui. Anda dapat mengakses semuanya dengan benar. Hidup adalah baik. Hidup baik-baik saja. Semuanya benar-benar baik. Dan jadi ini hanya memberitahu browser Anda dan server Anda, hey, semuanya baik. Aku punya semua informasi yang saya butuhkan. Keren. Tapi masalahnya adalah kadang-kadang masalah muncul ketika Anda have-- bertahan saya pikir Saya berbicara tentang duplikat. Anda memiliki tanggapan kurang bagus. Jadi misalnya, 404 adalah Halaman Tidak Ditemukan. Anda kadang-kadang memiliki akses Terlarang. Anda memiliki berbagai lainnya kode status bahwa aku Pastikan Anda semua pernah melihat ketika Anda mencoba untuk melakukan penelitian di internet. Dan browser Anda memberi Anda , tidak ada, tidak dapat mengakses. Dan Anda seperti, baik, omong kosong. Jadi hanya cukup banyak, ada beberapa kode status yang cukup umum. Mungkin membiasakan diri dengan yang mana saja itu. Satu paling lucu yang Saya pikir saya sudah pernah mendengar of-- jika Anda kebetulan mencari semua dari mereka online, untuk beberapa alasan ada sebenarnya kode status real disebut 418 Aku teko. Aku googled mana asal ini dari. Dan rupanya April Fools satu ' Hari beberapa dekade yang lalu, seseorang berpikir akan lucu untuk membuat kode status baru yang disebut 418 Aku teko. Sah, nama ini Kode disebut aku teko. Saya lupa apa halaman Anda harus pergi untuk benar-benar membuat tampilan ini. Tapi rupanya, Anda benar-benar bisa mendapatkan kode status saya Poci entah bagaimana melalui melakukan sesuatu. Jadi ada ratusan dan ratusan kode status. Beberapa dari mereka membuat lebih banyak akal daripada yang lain. Tapi cukup banyak hanya membiasakan diri dengan yang paling umum. Tubuh entitas yang diminta pendek dan gemuk, rupanya. Jadi kadang-kadang ada lebih kesalahan menakutkan daripada aku teko. Tapi ini adalah salah satu yang saya kira Anda jenis berharap untuk memukul. Tapi saya tidak berpikir Anda akan. Semua orang baik hanya pada Status Kode, permintaan, proses, pembuatan Informasi yakin disampaikan benar? Jadi sekarang kita akan transisi menjadi dari bagian yang menyenangkan dari bagian hari ini, di mana kita berbicara sedikit tentang HTML. HTML, semua itu adalah HyperText Bahasa markup. Itu hanya bahasa standar Anda gunakan untuk membuat semua web halaman di internet. Jadi setiap halaman web, apa Halaman web favorit Anda? Apa halaman web favorit Anda? AUDIENCE: [tidak terdengar]. ANDI PENG: Maaf? AUDIENCE: Tumblr. ANDI PENG: Tumblr. Jadi Tumblr ditulis dalam HTML. Dan jadi kita benar-benar akan pergi melalui dan bermain-main dengan beberapa hal-hal ini kemudian. Hampir semua yang Anda perlu belajar, tahu, untuk menulis HTML Anda mungkin bisa hanya Google di internet. HTML, itu bukan program seperti C di mana Anda dapat membuat variabel dan melakukan hal keren dengan itu. Ini lebih dari hanya, oh, ini adalah bagaimana saya ingin hal yang muncul di website saya. Dan aku hanya akan memasukkannya ke dalam. Dan itu akan gaya itu. Jadi HTML, dalam arti, itu hanya seperti suatu format atau template bahasa. Ini jauh lebih mudah. Ini jauh lebih mudah untuk belajar, banyak lebih mudah untuk menulis di dari pemrograman khas Anda bahasa, sangat mudah, sangat user diakses dan ramah. Jadi kita benar-benar akan memainkan sekitar, menulis halaman kita sendiri hari ini. Tapi sebelum kita mulai, saya hanya ingin membahas beberapa praktek terbaik yang singkat. Karena HTML adalah sebuah mudah bahasa dan karena bahkan jika Anda melakukan beberapa hal yang salah, kadang-kadang mungkin tidak melihat, kami ingin memastikan bahwa kami sebenarnya mengikuti praktik terbaik kami memastikan bahwa hal-hal yang bisa terjadi di sekitar tapi tidak selalu akan tidak pergi ke kanan memastikan bahwa mereka diminimalkan. Jadi cukup banyak, pastikan menutup semua tag Anda Anda ketika Anda sedang menulis dalam HTML. Jika Anda membuka tubuh, pastikan Anda menutupnya dengan tubuh suatu tempat. Anda ingin memastikan bahwa Anda Halaman web memvalidasi dengan menggunakan apa yang disebut W3 Validator. Anda bisa hanya Google yang online, dan ada link untuk itu. Dan kemudian Anda ingin terpisah HTML, yang adalah bahasa markup Anda dari gaya Anda, yang merupakan bahasa CSS yang David menunjukkan bahwa kita juga akan bermain sedikit dengan kuliah. Keren. Jadi kapan saja Anda ingin menjalankan HTML pada alat CS50, kita akan menjalankan program yang disebut apache, yang semua itu hanya dibangun di web server yang semua orang di CS50 memiliki akses ke. Kami menyebutnya apache50 hanya karena kita suka menyebutnya semuanya 50 di CS50. Jadi cara yang Anda memulai web CS50 server dengan mengetikkan pada perintah Anda baris apache50 mulai dot. Dan jika Anda ingin mengakhirinya setiap waktu, Anda apache50 berakhir tidak ada dot. Dan Anda hanya tekan Enter. Dan itu harus menuju ke sini segera. Oke. Jadi aku hanya akan cepat pergi contoh halaman web yang benar-benar singkat. Dan kita akan menghabiskan seperti 10, 15 menit bermain sekitar menulis halaman web kita sendiri. OKE. Jadi di sini di IDE-- yang bisa semua orang melihat itu? Tidak juga. Di sini, saya akan memperbesar. Aku hanya punya template yang singkat ini di sini dengan tidak benar-benar di dalamnya. Kami hanya akan cepat menulis program HTML di mana kita hanya menyapa dunia. Hal sehingga sama seperti di C, sekarang kita hanya akan melakukannya dalam HTML. Apakah ada yang ingin benar-benar hanya mencoba memberi saya hal pertama yang Anda harus dimasukkan ke dalam dokumen HTML? Ya. AUDIENCE: The kurung, yang [tidak terdengar]. ANDI PENG: Yep. Jadi sesuatu yang sangat unik untuk HTML yang kita biasanya secara tradisional tidak menemukan dalam perintah lainnya bahasa pemrograman tingkat baris adalah bahwa kita benar-benar untuk menentukan jenis file bahwa ini akan menjadi di bagian atas kode kita. Jadi dalam instance-- ini saya pikir itulah perintah yang tepat, benar? Oke. Di bagian atas, Anda hanya ingin memasukkan Bang DOCTYPE html dalam kurung hanya untuk memberitahu komputer Anda, hey, melihat keluar. Dan dokumen HTML akan datang. Dan kemudian bagaimana kita ingin untuk memulai file kita? Jika kita hanya ingin menyapa, memiliki Halaman web yang menyapa dunia, bagaimana kita pergi tentang membangun ini? Sebenarnya, mari kita beralih ke Google. Dan kita benar-benar bisa melakukan ini. Oke. Di sana kami pergi. Jadi HTML. Seperti yang Anda lihat, browser saya sebenarnya otomatis styling ini bagi saya. Hal yang sama seperti di C, ketika Anda membuat penjepit keriting terbuka, browser Anda secara otomatis menambahkan dalam penjepit keriting dekat. Untungnya, IDE kami suka melakukan ini untuk kita juga. Jadi sekarang kita bisa jenis mengetik awal tag, dan itu akan selalu memberitahu kita untuk ingat untuk mengetik akhir tag. Saya pikir ini perlu dikapitalisasi. Dan kemudian kita ingin menambahkan, selalu, kepala di yang judul. Kami hanya ingin mungkin memanggil halo ini, dan kemudian tubuh. Dan di sana Anda pergi. Itu sebenarnya dokumen HTML kita. Jadi cara bahwa setiap dokumen HTML selalu bergaya in-- hal yang sama dengan int void main. Anda selalu ingin memiliki HTML tag membuka dan menutup di bagian atas dan bawah dari kode Anda. Anda ingin memiliki kepala di dalam yang berisi judul, hanya apa pun akan menampilkan tab dari web Anda Halaman, dan kemudian tubuh dalam yang benar-benar akan menampilkan konten dari apa pun yang Anda ingin lakukan. Jadi jika Anda ingin benar-benar menjalankan ini, saya akan tampilannya kembali keluar. Anda benar-benar dapat mulai apache50 mulai dot. Keren. Dan seperti yang Anda lihat, sekarang link ini telah muncul. Ia mengatakan situs Anda sekarang tersedia di beberapa link di bawah ini. Jadi semua IDE kami memiliki done-- tidak IDE, sorry-- yeah, IDE kami telah dilakukan adalah membuat web Link yang di atasnya semua halaman web kami dapat diakses pada server. Jadi mari kita lihat di sini. Mari klik ini, pergi ke hello.html. Dan Anda melihat sangat sederhana Halaman web untuk hello world. OKE. Kami benar-benar akan hanya memiliki everyone-- ya, ada apa? AUDIENCE: Saya punya pertanyaan dasar. ANDI PENG: Yup. AUDIENCE: Bagaimana Anda menyimpan file Anda sebagai HTML? ANDI PENG: Ya. Jadi jika saya harus membuat file baru, jika saya lakukan New File, Untittle, jika saya lakukan, section.html, booming, itu semua saya harus lakukan. AUDIENCE: [tidak terdengar]? ANDI PENG: No. AUDIENCE: [tidak terdengar]. ANDI PENG: No. AUDIENCE: [tidak terdengar]. ANDI PENG: Ya. Cukup banyak, ekstensi pada file yang ada di dalam IDE Anda, yang memberitahu komputer, yang memberitahu browser, hey, melihat keluar. Ini akan menjadi kode ditulis dalam bahasa ini. Jadi misalnya, di Microsoft Kata, apa yang dilakukan semua dokumen Word diakhiri dengan, ekstensi apa? .doc atau .docx, kan? Semua yang dilakukan adalah menspesifikasikan untuk Anda sistem operasi, hey, Anda punya dokumen Word datang. Buka dengan Word. Hal yang sama dengan PDF. Ia tahu, oh, saya perlu untuk membuka file ini dengan Adobe Reader atau Adobe Acrobat. Dan ekstensi mengoperasikan cara yang sama seperti di komputer Anda. Jika Anda menentukan halaman kode Anda diberi nama HTML, maka ia tahu, oh, Anda punya kode HTML. Aku akan memperlakukannya sebagai kode html. Jadi itu super pintar dalam arti itu. Jadi semua orang, mari kita seperti 10 menit dan hanya membuat website kita sendiri. Mari kita tambahkan dalam hal indah. Jangan ragu untuk mengatakan apa pun yang Anda inginkan. Aku hanya ingin memastikan bahwa server semua orang yang berjalan dengan benar sebelum kita membebaskan Anda ke pset tersebut. Karena jika server Anda tidak menjalankan untuk pset tersebut, yang akan benar-benar, benar-benar buruk. Aku hanya akan melayang dan melihat apa semua orang bekerja pada. Bagaimana kabarmu? AUDIENCE: Saya hanya menyalakan komputer saya. ANDI PENG: Itu OK. AUDIENCE: [tidak terdengar]. ANDI PENG: Hanya IDE Anda. Ya. AUDIENCE: [tidak terdengar]. ANDI PENG: Ini OK. AUDIENCE: [tidak terdengar]. ANDI PENG: Benar-benar baik-baik saja. Apakah semua orang mengakses web server mereka OK? Apakah apache50 berjalan OK? Saya pikir di beberapa bagian lain, kita memiliki masalah dengan orang-orang tidak dapat mengakses server. Ya. Jadi Anda hanya menjalankan apache50 ruang mulai periode ruang. AUDIENCE: [tidak terdengar]. ANDI PENG: Yup. Baik? AUDIENCE: [tidak terdengar]. ANDI PENG: Oh, OK. Jadi Anda seharusnya memiliki ruang. Jadi apache50-- AUDIENCE: saya lakukan. ANDI PENG: ruang --start. AUDIENCE: Oh, ruang dot. ANDI PENG: Yup, ruang dot. Ini dia. Jadi jika Anda memiliki halaman HTML dibuat, maka Anda hanya dapat pergi langsung untuk link yang menentukan. Dan Anda harus dapat mengaksesnya. Semua orang bisa mengakses halaman web mereka OK? AUDIENCE: [tidak terdengar]. ANDI PENG: Oh, itu OK. AUDIENCE: [tidak terdengar]. ANDI PENG: Ya. Saya pikir Anda benar-benar dapat membuka itu dalam browser Anda, peramban dan tidak hanya browser IDE Anda. Ya, saya pikir jika Anda copy dan paste. AUDIENCE: Dan kemudian bagaimana kita mematikannya? [Tidak terdengar] ANDI PENG: Ya, Anda lakukan apache50 berhenti tanpa periode. Oke. AUDIENCE: [tidak terdengar]. ANDI PENG: Dengan tidak periode. Ya. Di sana kami pergi. Oke. Kami membuat halaman web kita sendiri. AUDIENCE: Oh, keren. ANDI PENG: Ya. AUDIENCE: Saya punya pertanyaan. Jadi apache 50-- ANDI PENG: 50, ya. AUDIENCE: [tidak terdengar]. ANDI PENG: Apa? Itu aneh. Lihat, itu semacam masalah yang terjadi sebelumnya. OKE. Lihat saya setelah bagian. Karena kita memiliki beberapa masalah dengan server. Dan Anda ingin Pastikan bahwa server Anda berjalan sebelum memulai pset tersebut. Karena Anda akan membutuhkannya. Ya. Apakah ada orang lain yang belum bisa mendapatkan server mereka untuk memulai? Bagi Anda yang ingin menambah gaya tambahan untuk halaman web Anda, kita benar-benar bisa melakukan apa Daud dalam kuliah juga, yang membuat gaya tambahan lembar, yang merupakan titik CSS, Cascading Style Sheet dan benar-benar hanya menambahkannya di. Jadi misalnya, Aku baru saja menciptakan cukup banyak hampir satu sama David lakukan di perkuliahan. Anda dapat cukup banyak hanya melakukan tubuh. Anda memiliki apa yang disebut tag di mana Anda dapat mengajukan permohonan untuk IDE bagian apapun Anda inginkan dalam Anda sebenarnya untuk halaman HTML. Jadi tubuh halaman, Anda dapat melakukan pusat menyelaraskan teks. Dan kemudian aku akan kreatif tag disebut top dalam yang saya ingin hal ini terjadi, menetapkan ukuran piksel yang lebih besar untuk font. Saya ingin berat font untuk berani. Dan saya ingin warna untuk biru, hanya sewenang-wenang nilai-nilai yang saya memutuskan untuk memilih. Saya dapat membuat tag lain yang disebut tengah. Ukuran font, membuatnya sedikit lebih kecil. Dan kemudian saya dapat membuat tag lain disebut bawah di mana saya ingin ukuran font menjadi lebih kecil masih. Dan jadi cukup banyak ini hanya contoh kode sumber atau sumber style sheets bahwa itu sangat mudah untuk hanya Google. Jika Anda mengatakan, oh, saya ingin font yang saya harus dicetak miring dan hijau tua, mungkin Anda bisa Google, dan kemudian akan memberitahu Anda tag atau ID yang tepat untuk membuat. Dan cara yang Anda lakukan benar-benar jenis memiliki ini dalam dokumen HTML atau menggunakannya adalah semua yang Anda miliki lakukan di sini adalah di kepala menambahkan link ke style sheet. Jadi Anda hanya dapat menghubungkan equals href apapun namanya dari style sheet Anda aku s. Dan kemudian hubungan adalah sebuah style sheet. Jadi dalam setiap dokumen HTML, selama Anda memasukkan ini lembar CSS dot, Anda harus dapat mengakses dan memiliki properti di sana. Jadi misalnya, di sini saya baru saja membuat halaman web contoh lain. Ini dipersilahkan untuk bagian CS50 Selasa 2:00-03:30 dengan saya. Dan kemudian saya telah menambahkan gambar indah yang kita berpotensi harus dapat melihat. Jadi, jika Anda lihat di sini, jika Anda pergi ke style.html, kami menciptakan sebuah halaman web dengan anak kucing. Karena kucing mengagumkan. Jadi menambahkan gambar hanya img Link SRC. Cukup banyak, jika ada apapun fitur Anda ingin menambahkan untuk Anda website-- sehingga katakanlah, Anda ingin menambahkan menu atau bar pencarian atau seperti sebuah image-- hanya Google bagaimana untuk melakukan itu. Dan Anda hanya celepuk dalam format tersebut. Hanya dan Anda dapat cukup banyak hanya menambahkannya di. Ini benar-benar, benar-benar mudah. Kami menciptakan kita sendiri halaman web sekarang. Jika kamu bersedia-- AUDIENCE: [tidak terdengar] ANDI PENG: Maaf? AUDIENCE: [tidak terdengar]. ANDI PENG: Oh, yang div hanya divisi mengatakan bahwa, oh, saya harus bagian tertentu yang disebut tengah di mana aku menerapkan tag CSS saya, dan kemudian divisi lain saya dengan bagian bawah. Itu semua ia memberi tahu Anda. Karena itu bagus untuk menjaga hal-hal rapi dalam rangka, sehingga program tahu bagaimana tepatnya untuk menjalankan. Dan berpikir saya bisa copy paste ini ke browser yang sebenarnya juga. Ini harus baik-baik. Ya. Hore. Jadi jika semua orang ingin hanya mencoba membuat halaman web, kami akan mengambil dua atau tiga menit. Aku hanya ingin memastikan server semua orang berjalan dan setiap orang memiliki ide tentang bagaimana untuk melakukan itu. Jika kalian ingin mengambil komputer Anda. Masih tidak bekerja? AUDIENCE: Aku hanya [tidak terdengar]. ANDI PENG: Mungkin mencoba memperbarui 50 juga. Ya. AUDIENCE: [tidak terdengar]. ANDI PENG: Ya. Jadi cara yang Anda memulai baru web server pada IDE hanya melakukan apache50 ruang awal ruang dot. Aku hanya ingin memastikan server semua orang berjalan OK. AUDIENCE: Di sini, di terminal? ANDI PENG: Ya. AUDIENCE: [tidak terdengar]. ANDI PENG: Apache. Sebenarnya, saya pikir Anda menjalankan sesuatu yang sudah. Ya, Anda benar-benar menjalankan server yang berbeda. Ya, Anda baik. Selama yang bekerja, Anda OK. AUDIENCE: OK. ANDI PENG: Ada dua cara untuk menjalankan server. Jadi selama salah satu cara bekerja, itu semua benar. Kami akan mengambil satu menit hanya untuk jenis menyelesaikan sentuhan akhir dari apa pun Halaman web kalian ingin membuat. Apakah semua orang yang bekerja dengan cara? Server semua orang yang berjalan selain untuk Anda? Kami akan mencari tahu. Dan HTML cukup sederhana. Jadi saya pikir kita semua baik. Ya. Saya akan kembali. AUDIENCE: [tidak terdengar]. ANDI PENG: OK. AUDIENCE: Jadi itu hanya mulai memuat. ANDI PENG: Jangan khawatir. Jadi HTML, ada kode sumber yang akan online setelah bagian. Juga, David memiliki keseluruhan sekelompok online juga. Hanya jenis melirik ke melihat bagaimana halaman HTML ditulis. Itu cukup mudah. Apa pun yang Anda tidak tahu, Anda cukup banyak hanya Google dan Anda baik. Aku hanya ingin memastikan bahwa server Anda berjalan. AUDIENCE: Apakah sering melakukan ini? ANDI PENG: Ini tidak terjadi pada saya. Saya tidak tahu itu bahkan bisa hibernate. AUDIENCE: [tidak terdengar]. ANDI PENG: Saya pikir everyone-- saya tidak pernah hibernated sebelumnya. Dan aku tidak tahu mengapa. Itu aneh. AUDIENCE: [tidak terdengar]. ANDI PENG: Apakah Anda berhibernasi? AUDIENCE: [tidak terdengar]. ANDI PENG: Ya. AUDIENCE: Ini OK. Jadi setelah itu terbuka. ANDI PENG: OK. Kami akan menangani beberapa server yang masalah setelah bagian. Anda harus baik-baik. Meskipun, Anda ingin memastikan Anda mendapatkan mereka diselesaikan sebelum Anda pergi. Karena jika server Anda tidak berjalan, maka Anda tidak akan dapat melakukan pset, seperti bagian dari pset tersebut. Jadi Anda ingin memastikan bahwa bekerja. Keren. Baiklah. Mengatakan anak kucing selamat tinggal. Saya menghabiskan waktu yang lama mencari yang gambar kucing untuk memakai. Jadi, lagian. AUDIENCE: [tidak terdengar]. ANDI PENG: Maaf? AUDIENCE: [tidak terdengar]. ANDI PENG: Saya pikir itu di website. Seperti spec? AUDIENCE: [tidak terdengar]. Saya pikir spec hanya online minggu tujuh. Saya pikir itu disebut pset6, bahkan meskipun kami berada di minggu tujuh, yang adalah komputasi bit. AUDIENCE: Tapi maksud saya jika Anda ingin melihat at-- jika Anda ingin menarik versi kami situs web dari memutuskan kami? Jadi seperti server.c adalah pset, kan? Jika Anda ingin melihat ini, seperti bagaimana melakukan check out? ANDI PENG: Oh, jadi sebenarnya pset, semua yang kita lakukan di sini adalah implementing-- sini, Aku akan pergi sebentar ini. Jadi untuk semua orang yang baru saja untuk bagian, kalian beruntung. Ada bahan yang sangat sedikit untuk benar-benar menutupi hari ini. Aku hanya akan menghabiskan berikutnya 20 menit akan lebih pset bantuan. Karena ada beberapa yang berguna fungsi yang akan membantu hidup Anda. Dan mudah-mudahan, kita akan keluar dari sini di seperti 20 menit. OKE. Jadi pset7 salah. Meskipun kami berada di minggu tujuh, itu sebenarnya pset6. Saya akan mengubah itu. Semua yang kita lakukan di pset6 adalah menciptakan server web. Kedengarannya menakutkan yang super. Dan terutama bagi mereka Anda yang sudah melihat kode distribusi, ada banyak kode, banyak kode. Tapi benar-benar OK. Karena sepele bagian dari benar-benar menciptakan server dilakukan oleh kami. Semua Anda benar-benar bertanya dilakukan di pset ini hanya untuk melakukan beberapa manipulasi string yang di file I / O. Ini sebenarnya seperti cukup sederhana. Jadi, ketika Anda pertama kali men-download itu-- yang di sini sebenarnya sudah didownload yang pset dan diambil melihat? Baiklah. Ya. Ada seperti 500 baris kode bahwa Anda akan menjadi seperti, apa yang sedang terjadi? Dan itu benar-benar baik-baik saja. Pastikan Anda menonton berjalan-through. Karena David dan-- Aku tidak tahu. Saya tidak berpikir itu Zamyla ini, yang satu ini. Tapi saya pikir beberapa lainnya berjalan-through cukup membantu dalam hal hanya membiarkan Anda tahu apa yang terjadi di dalam kode Anda. Dan itu benar-benar OK. Karena empat fungsi yang Anda diminta untuk menerapkan telah benar-benar nol hubungannya dengan server yang sebenarnya. Yang harus mereka lakukan adalah hanya parsing string yang berbeda, mencari melalui string, memastikan hal melakukan apa yang mereka seharusnya lakukan. Jadi untuk efek itu, ada beberapa fungsi yang sangat, sangat berguna, terutama untuk tali manipulasi, bahwa kita semua harus pergi yang saya pikir saya akan sangat berguna bagi kalian untuk belajar sebelum mencoba pset tersebut. Dan mereka semua yang terkandung dalam perpustakaan string.h Anda. Ada mungkin lebih berguna fungsi saya tidak termasuk di sini, karena saya baik tidak pernah menggunakannya atau mungkin aku hanya tidak tahu mereka ada. Jangan ragu untuk sekilas melalui student.h. Karena ada akan menjadi banyak fungsi yang sangat berguna. Jadi enam yang saya gunakan paling di saya pset ketika saya melakukannya minggu terakhir ini yang strtok, strchr, strrcher, strstr, strcasecmp, dan strcpy. Dan dua terakhir mungkin tampak cukup akrab bagi sebagian besar dari Anda. Kasus str membandingkan, semua hal ini adalah membandingkan string untuk memeriksa mereka untuk kesetaraan, termasuk kasus. Dan strcpy hanya salinan satu string ke dalam buffer. Dan kedua harus tampak sangat akrab bagi kalian pada saat ini. Karena kita telah menggunakan mereka banyak, terutama untuk psets terakhir. Tapi empat pertama mungkin Anda belum melihat sampai sekarang. Tapi aku akan hanya berjalan melalui mereka. Karena mereka akan membuat hidup Anda benar-benar, benar-benar mudah for-- tidak mudah, tapi jauh lebih mudah untuk pset mendatang. OKE. Jadi char * strtok, ini adalah fungsi definisi untuk fungsi ini terkandung dalam string, h perpustakaan. Jika Anda diberi masukan char * string, yang hanya string, atau char konstan * deliminator, delim untuk jangka pendek, semua itu lakukan adalah melanggar lebih besar string ke dalam serangkaian apa yang kita sebut token dipisahkan oleh nilai tertentu. Jadi dalam arti, jika saya harus memberikan Anda section.7.php, ini adalah sebuah string. Sehingga akan menjadi jika saya lulus dalam hal ini sebagai str saya, char saya * str, jika deliminator saya dot, semua ini akan lakukan adalah pencarian melalui tali. Dan pertama kali melihat sebuah titik, itu hanya akan kembali ke pointer untuk token terakhir ditemukan dalam string sebelum ini. Jadi itu akan pergi di sini. Dan itu hanya akan memberi saya 7.php. Dan jika saya harus memanggil berfungsi sekali lagi, itu akan memberi saya hanya php tersebut. Dan sehingga semua fungsi ini melakukan adalah mogok string yang lebih besar ke string yang lebih kecil tergantung pada apa yang Anda cari. Dan jadi misalnya, di Penampilan up Anda fungsi jika Anda ingin melihat apa yang karakter tertentu terjadi atau jika titik terjadi atau ekstensi terjadi, fungsi ini akan cukup berguna. Ya. Jangan khawatir. Ini semua akan be-- ya, ada apa? AUDIENCE: Jadi di baris pertama, jika kita menggunakan contoh ini, apa yang akan kita masukkan ke dalam? ANDI PENG: Ya. Anda hanya akan memanggil strtok delim tali koma. Dan string sama dengan section.7.php. Dan kemudian Anda delim bisa sama dengan hanya dot. AUDIENCE: OK. ANDI PENG: Ya. Seperti itu. Semua fungsi-fungsi ini cukup sama ketika kita pergi melalui mereka. Mereka hanya melakukan hal-hal yang sedikit berbeda. Tapi mereka semua akan membuat hidup Anda jauh lebih mudah. Fungsi kedua, satu ini seperti super, super, super penting, adalah the-- tahan. Ups. Pencarian strchr untuk pertama occurrence-- sebenarnya, ya. Strchr adalah fungsi yang Saya pasti hanya pergi. Sehingga mengabaikan apa yang saya katakan untuk fungsi pertama. Ini benar-benar disebut strchr. Jadi apa yang akan terjadi di sini adalah jika Anda diberi string dalam char c, itu hanya akan memberikan Anda apa pun itu. Ya. Jadi menganggapnya sebagai str, yang adalah string, dan chr sebagai char. Jadi semua yang Anda coba lakukan adalah pencarian untuk mana char adalah dalam string. Dan sehingga pencarian untuk pertama terjadinya karakter c dalam string str. AUDIENCE: [tidak terdengar]. ANDI PENG: Yup. Dan kemudian jika tidak menemukan itu, itu akan kembali NULL. Jadi sesuatu yang akan sangat berguna untuk kalian dalam melakukan pset yang jika, mengatakan, Anda sedang mencari ekstensi seperti .docx untuk Word dokumen atau .pdf untuk dokumen PDF, Anda dapat jenis menggunakannya untuk melihat untuk apa pun yang setelah itu setiap kali Anda melihat titik, kan? Dan jadi cukup banyak, jika Anda menjalankan bahwa melalui fungsi, jika ia mengembalikan NULL, maka Anda tahu bahwa itu tidak menemukan titik, yang berarti ini jelas bukan ekstensi file yang valid. Atau jika kembali sesuatu, maka Anda tahu itu akan kembali apa yang sebenarnya setelah ekstensi. Jadi bagi anda yang memiliki mulai melihat melalui lookup dan mengurai, fungsi ini akan menjadi super berguna. Jadi kita benar-benar akan untuk menunjukkan menggunakan ini. Kenapa tidak kalian mencoba menulis fungsi bool kalimat char * s yang hanya mengembalikan nilai true jika s adalah kalimat dan palsu sebaliknya. Jadi petunjuk, Anda akan untuk mungkin menggunakan strchr. Atau Anda hanya mencari di string untuk karakter tertentu. Dan dalam sebuah kalimat, apa yang memisahkan kalimat dari non-kalimat, apa karakter tertentu? AUDIENCE: Sebuah ruang. ANDI PENG: ruang A, kan? Dan jadi apa yang kita mungkin akan ingin dilakukan dalam fungsi ini di sini? AUDIENCE: [tidak terdengar]. ANDI PENG: Kami akan ingin strchr string untuk penampilan ruang. Karena jika ia mengembalikan sesuatu, maka kita tahu bahwa ini harus menjadi sebuah kalimat. Itu berarti bahwa kita harus memiliki ruang dalam string ini. Jika tidak ada ruang, maka kita tahu bahwa, hei, rasa itu bukan string. Ini mungkin hanya sebuah kata yang sangat panjang. Jadi saya akan memberikan kalian beberapa menit untuk menulis fungsi ini. Ya. AUDIENCE: Apakah Anda mendapatkan string ini dari pengguna? ANDI PENG: Ya. Jadi ini hanya fungsi. Jadi bayangkan dalam fungsi utama Anda Anda sudah have-- mari kita pergi di sini. OKE. Jadi saya telah menulis program ini di mana Saya memiliki fungsi utama saya di mana Aku baru saja menciptakan dua string. Yang pertama adalah Hai, nama saya adalah Andi-- jelas, kalimat. Kedua saya hanya Andi, jelas bukan kalimat. Dan jadi aku berjalan baik dari orang string melalui fungsi ini. Aku ingin kalian menulis kalimat dingin. Dan aku menyimpan nilai-nilai, dan kemudian hanya mencetak mereka keluar. Jadi berpikir bahwa pengguna adalah akan lulus dalam string. Dan kemudian Anda akan dasarnya mencari tahu apakah itu kalimat atau tidak dan kembali benar atau salah sesuai. Jika kalian ingin memberikan thumbs up atau kepala, kepala mengangguk, adalah siapa pun siap untuk memulai ini, yang akan menjadi baik. Mungkin seperti 30 detik lebih? Baiklah. Mari kita lihat apakah Anda dapat mencoba menulis fungsi ini. Jadi semu coding-- aku hanya akan jenis berjalan melalui ini sekarang. Cukup banyak, kita tahu fungsi yang kita perlu menggunakan. Kita akan memanggil fungsi yang pada string kita dan mencari ruang. Jika kembali sesuatu, maka kita harus tahu bahwa, jelas, ini adalah kalimat. Karena ada ruang. Kemudian kita akan kembali benar. Lain, kita akan kembali palsu. Apakah ada yang ingin memberikan saya baris pertama kode bahwa kita benar-benar akan digunakan untuk menulis ini? Ini sebenarnya yang paling sulit baris kode juga. Ya. AUDIENCE: Jika strtok s-- ANDI PENG: Hanya strchr. AUDIENCE: [interposing SUARA] ruang tidak sama dengan nol. ANDI PENG: Cool. Tepat. Semua orang memahami bahwa baris pertama? Kita akan memanggil strstr, yang merupakan fungsi yang mencari string s untuk char ruang. Dan jika menemukan itu, itu akan kembali pointer ke mana itu. Jika tidak menemukannya, itu akan kembali NULL. Jadi jika ia mengembalikan apa pun selain NULL, maka kita tahu itu menemukan ruang. Apakah itu masuk akal? Keren. Baiklah. Jadi jika kita tahu itu menemukan ruang, apa yang kita ingin lakukan? AUDIENCE: Kembali benar. ANDI PENG: Yup. Kembali benar. Dan kemudian, seseorang ingin menyelesaikan fungsi untuk saya? Ya. Lain, hanya seperti itu. Dan coba kompilasi ini. Oke. Sehingga kalian bisa melihat dari output, ingat boolean di C selalu dinyatakan dalam biner. 1 adalah benar. 0 adalah palsu. Jika kita menjalankan ini fungsi pada string satu, yang adalah Hi, nama saya Andi-- jelas, sebuah sentence-- hasilnya dicetak ke 1 yang benar. Yang kedua, yang hanya kata, hasil yang dicetak dengan 0, yang palsu. Semua orang semacam jelas tentang bagaimana fungsi ini ditulis? Ya. AUDIENCE: Bisakah kita juga lakukan, bukan tidak sama tidak ada, sama sama 0, sehingga itu sama dengan? ANDI PENG: No. Karena strchr adalah fungsi. Aku akan kembali ke ini. Jadi apa jenis kembali fungsi strchr kami? AUDIENCE: Oh, OK. Atau NULL. ANDI PENG: Ya. Ini char * yang memberitahu saya bahwa apa pun Fungsi ini akan kembali, itu akan menjadi pointer. Entah pointer akan menjadi menunjuk ke mana itu ditemukan itu, atau itu akan kembali pointer ke NULL. Dalam keadaan baik, itu akan untuk kembali pointer ke sesuatu. Dan jika Anda adalah untuk menyamakan ini sama, sama, 0, Anda akan mendapatkan error kompilasi. Karena itu akan kembali pointer. Dan Anda akan mencoba untuk membandingkan pointer ke integer. Dan komputer tidak akan seperti itu. Ya, persis. Keren. Semua orang baik? Dan kedua, kita akan pergi lebih fungsi yang disebut strstr. Jangan khawatir jika ini fungsi membingungkan Anda. Mereka membingungkan saya. Dengan demikian, kalian bisa melihat, mereka semua suara hampir sama. Hanya setiap kali Anda bingung, menarik perpustakaan string.h. Dan kalian bisa memilah melalui mana seseorang yang. Jadi strstr, semua yang dilakukan adalah pencarian string untuk seluruh string lainnya. Jadi mana strchr hanya pencarian untuk satu karakter, pencarian strstr untuk seluruh string. Jadi saya ingin melihat, saya tidak tahu, Hi, nama saya Andi. Dan nama sahabat saya juga Andi. Jika saya ingin mencari ini kalimat untuk seluruh kata Andi, jarum saya akan apa pun yang Anda cari. Dan tumpukan jerami Anda adalah apa pun Anda sedang mencari dalam. Jadi jika Anda sedang mencari kata tertentu dalam kalimat, kata yang akan menjadi jarum Anda. Dan kemudian kalimat itu sendiri akan menjadi tumpukan jerami Anda. Dan sehingga hanya mencari kejadian pertama jarum tali dalam string tumpukan jerami. Ia mengembalikan pointer untuk kejadian pertama. Kecuali, ingat dalam hal ini, itu adalah kejadian pertama dari seluruh string yang Anda cari untuk, bukan hanya karakter. Dan jadi ini adalah hampir hal yang sama seperti fungsi kami hanya melakukan, hanya dengan sedikit lebih spesifisitas. Karena Anda sedang mencari lebih dari satu karakter. Dan penggunaan adalah sama persis sebagai salah satu yang baru saja kita lakukan. Semua orang OK dengan ini? OKE. Yang terakhir kita akan pergi lebih adalah strrchr, yang tidak bingung dengan strstr atau dengan strchr. strrchr memiliki r tambahan di sana. Hati-hati saat Anda mengetik. Anda mungkin menemukan diri termasuk r tambahan atau tidak termasuk r, dan kemudian fungsi Anda adalah punya tidak akan bekerja. Dan Anda akan menjadi bingung. Hati-hati bahwa Anda ejaan semua fungsi yang tepat. Jadi strrchr adalah tepat hal yang sama seperti strchr kecuali mencari bukan pertama terjadinya karakter tertentu, melainkan kejadian terakhir. Dan, dalam arti bahwa, itu hampir sama persis. Tapi bukannya bergerak maju dalam sebuah string, Anda akan bergerak mundur dalam string. Hal yang sama persis, Anda hanya mencari dalam urutan yang berbeda. Dan ini bisa menjadi super, Super berguna untuk pencarian Anda fungsi, yang pertama fungsi pada pset Anda. Mari kita berpura-pura bahwa kita perlu untuk menulis fungsi kekosongan ekstensi di mana kita lulus char konstan nama file *, hanya string, nama file, yang mengambil dalam nama dan cetakan keluar ekstensi dari file itu. Jadi misalnya, jika saya harus lulus dalam serangkaian pset7.zip, itu akan mencetak hanya ekstensi, yang .zip. Dan ini akan bekerja untuk apapun ekstensi, .docx untuk Word atau .pdf untuk PDF mengajukan atau .html untuk file HTML. Cukup banyak, menulis fungsi yang dapat melakukan itu. Aku benar-benar akan beralih ke IDE. Hal ini tidak load-- ada kita pergi. Jadi semua yang telah saya lakukan di sini adalah menciptakan char *, string pertama, disebut pset7.zip. Aku akan memperbesar. Saya telah membuat sebuah string kedua disebut finalpaper.docx. Dan menulis saya fungsi bahwa ketika disebut akan hanya mencetak ekstensi nama file. Mungkin mengambil beberapa menit untuk berpikir tentang bagaimana Anda akan melakukan hal ini. Sedikit lebih menantang daripada yang terakhir, namun penggunaan hampir persis sama. Ya. Jadi menulis ekstensi fungsi yang disebut bahwa, jika saya memberikan nama file, jika saya harus memberikan pset7.zip-- Saya Anda ingin mencetak hanya .zip tersebut. Jika saya memberi Anda seperti finalpaper.docx, hanya mencetak docx itu, hanya ekstensi file apapun. Ini sebenarnya hanya mengambil dua baris kode. Jadi cobalah untuk melihat apakah Anda mungkin bisa melakukannya dalam. Sebenarnya, itu hanya Dibutuhkan satu baris kode. Tapi dua baris mungkin lebih standar. Fungsi apa kita mungkin akan ingin menelepon? AUDIENCE: strrchr. ANDI PENG: strrchr, benar. Karena kita sedang mencari dari kiri kanan. Aku tidak memberikan kalian contoh seperti ini, tetapi jika saya memberi Anda sebuah contoh seperti www.apple.com dan saya hanya ingin com, itu akan menjadi contoh di mana Anda ingin menyebutnya contoh terakhir periode dan bukan yang pertama, kan? Jika Anda strchr panggilan, itu akan sudah memberikan apple.com tersebut. Jika Anda disebut strrchr, itu akan memberikan Anda com. Dan jadi hati-hati di mana ways-- dalam contoh saya, Anda mungkin bisa bisa memiliki hanya ditulis menggunakan strchr, karena hanya ada satu titik. Namun dalam kasus lain, yang mungkin tidak terjadi. Dan selalu mencoba untuk merancang kode Anda dengan baik, sehingga itu-- ya? AUDIENCE: Jadi dalam Misalnya Anda hanya berkata, ketika Anda strrchr itu akan memberikan .com atau hanya datang? ANDI PENG: Ini akan memberi Anda com. AUDIENCE: OK. ANDI PENG: Ya. Menunjuk ke mana menemukannya. Ya. 30 detik mungkin? Ya. Semua orang baik atau mungkin sedikit lebih banyak waktu? Menunjukkan tangan? Tampilkan kepala? Keren. Siapapun ingin memberikan yang pertama baris kode untuk program ini? AUDIENCE: [tidak terdengar]. ANDI PENG: Jadi pertama-tama, mari kita mungkin istirahat ini turun. Jadi apa jenis kembalinya strrchr? Ayo kembali. strrchr, apa jenis kembali? AUDIENCE: Char * ANDI PENG: Ini char *, kan? Yang berarti bahwa Anda mungkin akan ingin membuat arang lain * untuk jenis toko setiap kali itu kembali ke, kan? Karena jika Anda menelepon fungsi strrchr, itu akan memberi Anda pointer ke di mana pun menemukan bahwa periode terakhir, kanan? Tapi Anda akan ingin menyimpan suatu tempat itu, kan? Dan bagaimana kita kode ini ke dalam program kami? AUDIENCE: Anda membuat char * [tidak terdengar]. ANDI PENG: Yep. AUDIENCE: [tidak terdengar]. ANDI PENG: strrchr. Ya. Oh, melewatkan r ada. AUDIENCE: Nama file [tidak terdengar]. Apa itu? Oh, Ini hanya s. ANDI PENG: Oh, itu hanya s. Yup, maaf. Kesalahanku. Contoh tidak cocok. AUDIENCE: Dan kemudian dot. ANDI PENG: Yup. Hati-hati saat kalian are-- sini, biarkan aku memperbesar. Di sana kami pergi. Hati-hati saat kalian mengetik, terutama ketika Anda melakukan hanya char. Ini sangat mudah untuk sengaja hanya melakukan tanda kutip ganda daripada satu. Itu tidak akan bekerja. Compiler Anda akan mengeluh. Dan fungsi Anda hanya tidak akan berjalan. Dan jadi hati-hati ketika Anda melakukan hal-hal dengan karakter bahwa itu tanda kutip tunggal. Dan begitu juga lini kode masuk akal untuk semua orang? Kami menciptakan char * pointer. Karena pengembalian strrchr sesuatu jenis pointer. Dan kita akan memanggil strchr pada s, yang merupakan string, file nama, bahwa kita lewat di. Dan kami sedang mencari yang terakhir Misalnya dari periode, yang merupakan hanya kutipan tunggal dot kutip tunggal. Ya. AUDIENCE: Kapan kita menggunakan tanda kutip ganda dan ketika kita menggunakan tanda kutip tunggal? ANDI PENG: Ya. Kutipan Jadi ganda selalu digunakan ketika Anda memiliki string lebih dari satu. Jadi jika Anda melakukan strstr, yang merupakan salah satu yang Anda mencari string string, Anda akan lulus dalam tanda kutip ganda. Tapi setiap saat itu hanya satu karakter, Anda ingin melakukan tanda kutip tunggal. Ini adalah hal yang baik untuk diingat. Jadi sekarang kita memiliki kita pointer, apa yang kita lakukan dengan itu? Saya meminta kalian untuk pencetakan itu, kan? Jadi [tidak terdengar], Anda ingin memberi saya baris kode? AUDIENCE: printf-- ANDI PENG: Ya. AUDIENCE: --you membutuhkan tempat dudukan. ANDI PENG: Yup. AUDIENCE: Cetak pemegang tempat. Aku tidak tahu apa tempat Pemegang hanyalah titik untuk itu. OKE. Mari kita mengabaikan bahwa untuk saat kemudian. AUDIENCE: Dan kemudian comma-- ANDI PENG: Pointer, kan? AUDIENCE: Pointer, yup. ANDI PENG: Jadi semacam pertanyaan jebakan, hubungannya dengan pointer dan string bahwa kita sudah semacam berbicara tentang sudah. Apa jenis tempat dudukan kita butuhkan untuk pointer untuk char *? AUDIENCE: [tidak terdengar]. ANDI PENG: Ya. Ini lebih mudah daripada kalian pikirkan. AUDIENCE: String? ANDI PENG: Ini hanya sebuah string, persis. Karena ingat string tidak benar-benar ada. Sebuah char * adalah tepat hal yang sama sebagai string. Dan sehingga benar-benar ini adalah apa s harus telah digunakan selama ini. OKE. Mari kita lihat apakah kita dapat mencoba menjalankan ini. Mari kita melakukan ekstensi make. Keren. Kalian melihat bagaimana saya lulus dalam psset7.zip dan finalpaper.docx itu, dan hanya mencetak .zip dan .docx itu? Masuk akal? OK Jadi saya pikir dalam melihat Anda up fungsi dalam pset Anda Anda akan ditanya apakah string yang memiliki akhir tertentu, Anda harus memberikan kode kesalahan tertentu. Dan ini akan menjadi cukup mengerikan. Karena jika Anda bisa mencari apa ekstensi adalah, Anda kemudian dapat membandingkan bahwa ekstensi untuk melihat apakah itu cocok dengan ekstensi tertentu. Dan kemudian Anda dapat kembali pesan kesalahan, kan? Ya. AUDIENCE: Jadi kita tidak harus menambahkan 1 atau apa? Pointer akan pergi ke the-- ANDI PENG: Tidak. AUDIENCE: --point setelah. ANDI PENG: Ya. Menunjuk persis ke di mana terjadinya itu. Jadi misalnya di sini, kami mencari periode. Jadi itu akan kembali pointer ke periode. Dan kemudian itu akan mencetak keluar mulai periode. Jadi Anda tidak perlu menambahkan 1. Meskipun, itu benar-benar baik untuk, jika Anda pernah yakin, hanya jenis dari menguji itu sendiri. Membangun program sampel. Menguji itu sendiri dan melihat di mana itu mencetak. Itu juga bukan cara yang buruk untuk melakukannya. Keren. Dan itu cukup banyak semua Aku punya untuk kalian hari ini. Kami melakukan banyak hal pset hari ini. Jadi bila ragu, seperti Aku berkata, selalu melihat ke atas perpustakaan string.h untuk pset ini. Ada akan menjadi banyak fungsi dalam sana yang mungkin berguna. Beberapa mungkin tidak berguna. Saya tidak benar-benar tahu. Wade melalui itu, ada sejumlah dari mereka. strstr, strchr, strrchr adalah super, super membantu, serta yang strcpys dan strcasecmps bahwa kita sudah digunakan. Hanya saja banyak main-main dengan string, menentukan apakah mereka sama, mendapatkan barang-barang keluar dari string, dan mampu membuka file dengan benar. Ini banyak file I / O. pset benar-benar tidak buruk. Anda akan mengambil melihat itu, men-download, dan melihat sejumlah besar kode. Jangan khawatir, kode Anda benar-benar menulis tidak buruk sama sekali. Jika seseorang memiliki masalah dengan mereka Server, datang menemui saya setelah bagian. Maaf sekali lagi untuk tidak membawa permen untuk Halloween. Aku tidak tahu apa yang salah dengan saya. Tapi kami akan memiliki dua kali lipat permen waktu berikutnya. Dan keberuntungan dalam pset Anda minggu ini. Oke.