ANDI เป็ง: เราเกือบจะ ผ่านทุก psets ในความเป็นจริงเราผ่านส่วนใหญ่ ของ psets ที่ยากที่สุด ดังนั้นเราจริงเพียง ไปชนิดของสายลม ผ่านคู่ต่อไปของสัปดาห์ที่ผ่านมา เรากำลังจะเริ่มต้นพูดคุยเกี่ยวกับเรา โครงการสุดท้ายเหตุการณ์ที่เกิดขึ้นมา ในอีกไม่กี่สัปดาห์ข้างหน้า และชีวิตจะเป็นเรื่องง่าย ดังนั้นวันนี้ไม่มากเกินไป หวังว่าจะจริงสายลม ผ่านวาระการประชุมในวันนี้ แล้วจะออกจากที่นี่ ที่มีเวลาว่างบาง นอกจากนี้ผมอยากจะขอโทษ การขาดของขนมในวันนี้ ผมไม่ทราบว่าทำไม แต่ในสัปดาห์ที่นำไป ฮัลโลวีผมจะลืมลูกอม ดังนั้นฉันจริงเพียงกว้างใหญ่ ความผิดหวังให้กับคุณในขณะนี้ เพราะผมจำได้ว่าแท้จริงลูกอม ทุกระดับเดียว แต่วันฮาโลวีน แต่ในสัปดาห์หน้าเราจะนำ สองเท่าของปริมาณของขนม ที่จะทำขึ้นสำหรับการที่ทุกอย่างให้คุณ มันจะดี ดังนั้นผมจึงมีคู่ของประกาศ เกี่ยวกับการตั้งเวลาบางส่วน ผมมีปัญหาการตั้งเวลาบางส่วน จากนั้นเรากำลังจะย้ายไป พูดคุยเกี่ยวกับสิ่งที่เรียกว่า chmod เรากำลังจะพูดคุยเกี่ยวกับ ได้อย่างรวดเร็ว TCP / IP HTTP และจากนั้นเรากำลังจะได้รหัสของเรา เว็บไซต์ของตัวเองโดยใช้ HTML และ CSS และจากนั้นที่จริงผมอาจจะออกจาก เช่น 20 นาทีในการพูดคุยเกี่ยวกับ pset6 เพราะ pset6 เป็นจริงจำนวนมาก สิ่งที่เราได้เห็นแล้วก่อน แต่ฉันต้องการที่จะฟื้นฟู บางส่วนของแนวคิดเหล่านี้ เช่นเดียวกับการสอนฟังก์ชั่นใหม่ทั้งคู่ เย็น ดังนั้นแรกของทุกคน ต้อนรับการกลับมาจากพัก ฉันหวังว่าคุณแบ่งกำลังเป็นที่สนุกสนาน คุณไม่จะทำสำหรับการพักผ่อน? ผู้ชม: ไปนิวยอร์ก ANDI PENG: คุณไปนิวยอร์ก? ผมคิดว่าครึ่งหนึ่งของโรงเรียนของเรา ไปนิวยอร์ก ไม่เป็นไร. ผมใช้เวลาส่วนใหญ่ของการแบ่งของฉัน อยู่ประจำที่ในเตียง Netflixing และมันก็เป็นช่วงเวลาที่ดี แต่เราอยู่ในขณะนี้กลับมากลับมาอยู่ใน เซสชั่นกลับมาอยู่ในวงสวิงของสิ่งที่ เรามี pset เนื่องจากวันศุกร์นี้ตอนเที่ยง ฉันคิดว่าคุณได้อยู่แล้ว หยิบขึ้นมาตอบคำถามของคุณใช่? ดังนั้นคนอื่น ๆ ที่มี ไม่ได้มีแบบทดสอบของพวกเขา โปรดมาและได้รับการทดสอบของคุณ จากฉันในตอนท้ายของส่วน หรือติดตามฉันลงในมหาวิทยาลัย ฉันจะมีมันกับฉันอยู่ที่ไหนสักแห่ง โครงการสุดท้ายของเราก่อนข้อเสนอยัง ดังนั้นสำหรับพวกเราที่ไม่เคยนำ ระดับก่อนหน้านี้จุดสูงสุดของ CS50 เป็น culminated อย่างมากในเรื่องนี้ โครงการแกรนด์ว่านักเรียนนำเสนอ และข้อเสนอก่อน เพียงแค่ความคิดทั่วไป ของสิ่งที่หนึ่งอาจต้องการที่จะทำเพื่อพวกเขา โครงการความคิดที่ว่าเป็นเพราะวันจันทร์ วันจันทร์ถัดไปตอนเที่ยง ดังนั้นสวยมากผมคิดว่าเดวิดจะ พูดคุยเกี่ยวกับเรื่องนี้ในการบรรยาย ถ้าเขาไม่ได้อยู่แล้ว และมีหน้าที่เป็นของแข็ง บนเว็บไซต์ของเราอธิบาย ความต้องการทั้งหมดของโครงการ แต่เป็นหลักให้เลือก หัวข้อใด ๆ ที่คุณได้ รับการสนใจในการ ตลอดระยะเวลาของคุณที่นี่ ที่ลูกค้าไม่ว่าจะเป็นการเล่นเกมหรือ การออกแบบหรือวิดีโอหรืออะไร และคุณสามารถจริงๆชนิดของ ตอนนี้ใช้บางส่วนของบทเรียน ที่เราได้เรียนรู้ที่นี่ใน CS50-- สวัสดี welcome-- จะสวยมากการดำเนินการ โครงการสุดท้ายที่คุณเลือก ทั้งหมดที่ว่าเนื่องจากวันจันทร์เป็น เพียงสั้น ๆ ประกาศแจ้งผ่านทางอีเมล์ ให้ฉันเป็นประโยคที่รวดเร็ว เหมือนเดี๋ยวก่อน Andi, ฉันสนใจจริงๆในการออกแบบ เกมที่ไม่นี้สำหรับ iOS เย็น เพียงแจ้งให้เราเริ่มต้นโดยย่อของ ความคิดสำหรับโครงการสุดท้ายของคุณ และเราจะพูดคุยผ่านหรือไม่ ที่เป็นจริงเป็นความคิดที่ดีหรือไม่ ถ้ามันเป็นความคิดที่เป็นไปได้หรือไม่ แต่ข้อเสนอก่อน เป็นเพราะวันจันทร์ถัดไป pset6, web-- ที่น่ารักของเราที่ไม่ถูกต้อง Pset7? pset6? มัน pset6 ใช่มั้ย? pset6 เว็บเซิร์ฟเวอร์ของเราเป็นเพราะ วันศุกร์เวลาเที่ยงกับวันปลาย เวลาทำการดำเนินการได้ตามปกติตั้งแต่วันจันทร์ ถึงวันพฤหัสบดีที่ 8:00-11:00 สัปดาห์นี้ ผมคิดว่าสำหรับคอมมอนส์ สามคืนต่อไป เย็น ก่อนที่เราจะได้ลงในวัสดุไม่ทุกคน มีคำถามใด ๆ , ตลก, เรื่อง? คุณทำอะไรสำหรับการพักผ่อนในฤดูใบไม้ร่วง? ผู้ชม: สิ่งที่ฉันจะทำอย่างไร ANDI PENG: แล้ว มันเป็นวัยที่ผ่านมาจริง คริสไปนิวยอร์ก ฉันอยู่ที่นี่และ Netflixed ผู้ชม: โอ้ใช่ฉันอยู่ที่นี่ ANDI PENG: โอ้, OK ผู้ชม: ผมจำไม่ได้ โดยเฉพาะสิ่งที่ ANDI PENG: ที่ตกลง ผู้ชม: Netflixing อาจ ANDI PENG: Netflixing ใช่มันเป็นเวลาที่ดี ตกลง. ทั้งหมดขวา คำถามใด ๆ ก่อน เรากระโดดลงไปในวัสดุ? นอกจากนี้เรากำลังจะพยายามที่จะ เพิ่มความเร็วในการผ่านส่วนในวันนี้ ไม่มากเกินไปเพื่อให้ครอบคลุม และหวังว่าเราจะได้รับ ออกจากที่นี่ในช่วงต้นบิต ขออภัยในความไม่ลูกอมยัง ฉันผิดหวัง โดยเฉพาะในช่วงวันฮาโลวีน ทั้งหมดขวา เย็น ดังนั้นเรากำลังจะเริ่มต้นพูดคุยเกี่ยวกับ อาร์กิวเมนต์บรรทัดคำสั่งที่เรียกว่า chmod chmod ทั้งหมดก็เป็นเพียงระบบปฏิบัติการยูนิกซ์ ดำเนินการเรียกจากบรรทัดคำสั่ง การเปลี่ยนแปลงสิทธิ์ของแฟ้ม ดังนั้นสำหรับตัวอย่างเช่นเราได้ ทั้งหมดที่พบหน้า เช่นนี้อาจจะเป็นบางครั้งใน ช่วงชีวิตของการเป็นอินเทอร์เน็ต ผู้ใช้ที่เว็บเซิร์ฟเวอร์ของเรามี ให้เรามีข้อผิดพลาดของต้องห้าม คุณไม่ได้รับอนุญาตให้เข้าถึง yadda, yadda, yadda, บนเซิร์ฟเวอร์นี้ สิ่งที่จริงๆหมายถึง คือการอนุญาต ที่ติดอยู่กับสิ่งที่ หน้าเว็บที่คุณกำลังพยายามที่จะเข้าถึง ไม่ได้เปิดให้คุณ ดังนั้นสวยมาก chmod เป็นวิธีการที่ เราสามารถปรับเปลี่ยนสิทธิ์ของระบบเหล่านั้น ที่จะให้ทุกคนผู้ใช้กลุ่ม หรือโลกหรือใด ๆ การรวมกันของการเข้าถึงผู้ ไปยังไฟล์บางอย่าง ไดเรกทอรีอะไรจริงๆ การเรียงลำดับของระบบใด ๆ ระบบปฏิบัติการ ดังนั้นถ้ามีคนมี คอมพิวเตอร์ถ้าคุณรู้สึกว่า เช่นต่อไปพร้อมกับฉันในวันนี้ ทั้งหมดอย่าลังเลที่จะเพียงแค่พิมพ์สิ่งที่ ใน ถ้าไม่ได้คุณก็สามารถออกไปเที่ยว ดังนั้นฉันจะดึงจริง ขึ้นขั้วของฉันตอนนี้ ดังนั้นคำสั่งในการทำงาน chmod หรืออย่างน้อยเพียงแค่ ในรายการสิทธิ์ของคุณ ไดเรกทอรีของแฟ้มเป็นเพียง LS-ลิตร ในขณะที่คุณสามารถเห็นพวงของ สิ่งที่ปรากฏขึ้นซึ่งส่วนใหญ่ เป็นสิ่งสำคัญที่เราได้ที่ ด้านซ้ายมือที่นี่ พวกคุณเห็นพวงของอาร์เอสที่ WS 1 / ใช่ เหล่านี้เป็นหลักเพียง ทุกสิทธิ์ของแฟ้ม เพื่ออธิบายสิ่งที่ไดเรกทอรีบางอย่าง และไฟล์ที่อยู่ในระบบของคุณได้ ดังนั้นขอให้กลับไปที่ จุดอำนาจที่นี่ ดังนั้นนอกเหนือไปจากชื่อไฟล์ เป็นคนที่คุณสามารถดูด้านขวา เรากำลังมองหาที่จะเห็นเป็นหลัก เพียงคอลัมน์ด้านซ้าย ดังนั้นนอกเหนือไปจากเพียง ชื่อไฟล์ที่เรา สามารถดูสิทธิ์ของไฟล์ของพวกเขา กลุ่มเจ้าของชื่อกลุ่มวันที่ ว่าไฟล์ล่าสุด แก้ไข ฯลฯ คุณสามารถเห็นสิ่งต่างๆมากมายโดยใช้ chmod ดังนั้นวิธีการที่เราอ่าน chmod คือ ตัวอักษรตัวแรกเราไม่สนใจสวยมาก ในแง่ของสิทธิ์การอ่าน ตัวอักษรตัวแรกเพียงแค่บอกเราว่า ประเภทของระบบที่เรากำลังเข้าถึง d ในกรณีนี้คือ โฟลเดอร์หรือไดเรกทอรี ดังนั้นเราจึงรู้ว่าขณะนี้พื้นที่ทำงานของฉัน ส่วนเจ็ดเป็นไดเรกทอรี แล้วคุณจะเห็นสาม triads เป็นหลักเพียง สามชุดของตัวละครทั้งสาม และคุณสามารถคิดของแต่ละบิต ดังนั้นคุณก็ต้องสามชุด สามบิตเก้าบิตทั้งหมด คุณปฏิบัติต่อพวกเขาในกลุ่มของสาม ดังนั้นกลุ่มแรกของสามคือ เสมอสิทธิ์ของผู้ใช้ของคุณ กลุ่มที่สองของคุณสามคือ เสมอสิทธิ์ของกลุ่มของคุณ และชุดที่สามของคุณสาม อยู่เสมอเช่นโลก สิทธิ์ทุกที่ ดังนั้นผมคิดว่าง่าย คำถามที่จะถามคือสิ่งที่เป็น ความแตกต่างระหว่างผู้ใช้และกลุ่ม แตกต่างที่สำคัญ ระหว่างผู้ใช้และกลุ่ม คือการที่ผู้ใช้เป็นเพียงคนที่คุณ การเข้าถึงสิ่งที่เป็นอยู่ในขณะนี้ กลุ่มสามารถหากคุณมีหลาย ผู้ใช้บนคอมพิวเตอร์เครื่องหนึ่งตัวอย่างเช่น ทั้งหมดของพวกเขาสามารถรักษาได้เป็นกลุ่ม และแล้วโลกคือ เพียงแค่โลกทุกคน ดังนั้นเราจึงสามารถเห็นต่อไปเกี่ยวกับวิธีการที่เราสามารถทำได้ ปรับเปลี่ยนเหล่านั้นเป็นสิทธิ์ที่แตกต่าง ดังนั้นสวยมากเรา จะยังคงมุ่งเน้น ในส่วนทางด้านซ้ายที่ สำหรับ CS50 ไดเรกทอรีที่เราเห็น drwx, ที่อาร์ก็หมายความว่ามันสามารถอ่านได้ w คือเพียงแค่หมายความว่ามันสามารถเขียนได้ แล้ว x เพียง หมายความว่ามันเป็นที่ปฏิบัติการ คุณจะคิดว่ามันชนิด ของไม่ได้ทำให้รู้สึก มันควรจะเป็นอี แต่ x จริงชนิดของ ทำงานได้ดีขึ้นเล็กน้อย เพราะคุณสามารถจำได้ดี ดังนั้นสามประเภทของสิ่งที่คุณ สามารถทำอย่างใดอย่างหนึ่งที่คุณสามารถอ่านไฟล์ คุณสามารถได้รับอนุญาตให้เขียน ยื่นหรือคุณอาจจะได้รับอนุญาต ในการดำเนินการไฟล์ ดังนั้นวิธีการที่เราจริง เป็นตัวแทนของผู้ที่อยู่ในบิต เป็นตัวเลขที่ 4, 2 และ 1 อะไรที่สามารถอ่านได้ดังนั้น ตัวแทนจากจำนวน 4 สิ่งใดที่สามารถเขียนได้ เป็นตัวแทนจาก 2 และสิ่งที่เป็นที่ปฏิบัติการ เป็นตัวแทนจาก 1 ดังนั้นในแง่นี้เรายังสามารถ เหล่านี้เป็นตัวแทนของเบอร์ สวัสดียินดีต้อนรับในทางที่แตกต่างกัน ขอโทษ ก่อนที่ทุกคนฉันจะ ขอโทษในนามของทุกคน เข้าชั้นเรียนในขณะนี้ ฉันลืมขนมในวันนี้ ฉันขอโทษที่ฉันล้มเหลว สัปดาห์ของว​​ันฮาโลวีนนี้ เราจะนำสองจำนวนของ ลูกอมในครั้งต่อไปที่จะทำขึ้นสำหรับมัน แต่ anyways ขอโทษ เกี่ยวกับคนที่เสียใจ ดังนั้นวิธีการที่เราสามารถใส่ได้จริง ในคำสั่งของเราโต้แย้งก็คือเรา สามารถทำ chmod สิทธิ์เฉือนกลุ่ม กลุ่มที่เป็นเพียงสิ่งที่ กลุ่มที่เรากำลังพยายามที่จะเปลี่ยนแปลง และสิทธิ์ที่มี สิ่งที่เราต้องการที่จะเพิ่มไป ดังนั้นสำหรับตัวอย่างเช่น บวกเพิ่มสิทธิ์ และลบจะอยู่ห่างสิทธิ์ และประเภทของกลุ่มเรามีของเรา สำหรับทุกท่านสำหรับผู้ใช้กรัมสำหรับกลุ่ม หรือ o สำหรับคนอื่น ๆ มันเป็นนามธรรมบิตในขณะนี้ แต่เราจะไปกว่าตัวอย่างคู่ เพียงเพื่อแสดงให้เห็นถึงนี้อย่างรวดเร็วจริง ทุกคนที่ดีเกี่ยวกับเรื่องนี้ สไลด์เพื่อให้สามารถเดินหน้าต่อไป? เย็น ดังนั้นตัวอย่างเช่น rwx ก่อนที่เราจะพูดคุยเกี่ยวกับสิ่งที่มันหมายถึง ครั้งแรกของทุกสิ่งที่ไม่ rwx หมายความว่าอย่างไร หากคุณเห็นว่าบางนี้ ไฟล์ที่มีสิทธิ์ของ rwx, สิ่งที่ไม่ที่มีความหมาย คนอาจจะสามารถที่จะทำอย่างไร? ผู้ชม: อ่านเขียนและดำเนินการ ANDI เป็ง: ใช่ว่า คุณสามารถอ่านเขียนและดำเนินการ เพราะทั้งสามของคนเหล่านั้น ตัวละครที่มีอยู่ ดังนั้นหากเราไปข้างหน้าและพูดคุย เกี่ยวกับเรื่องนี้ในแง่ของบิต rwx นอกจากนี้ยังสามารถแสดงเป็น 700 เพราะอย่างที่คุณเห็นในที่ใด ๆ การเรียงลำดับของรับอนุญาตไดเรกทอรีไฟล์ มีสาม triads ในกรณีนี้เพียงครั้งแรก สามมีอะไรที่มี ดังนั้นในกรณีนี้อาร์คือ 4, น้ำหนักคือ 2 และ x เป็น 1 ถ้าคุณเพิ่มผู้ร่วมกันก็ 7 ดังนั้นถ้าคุณแปลง มัน binary ก็ 700 เพราะ 7 เป็นครั้งแรกที่สาม 0 มีอะไรในปัจจุบัน ในสองสาม แล้วมีอะไรที่อยู่ใน แก๊งสามเพื่อให้เป็นอีก 0 ดังนั้นในความรู้สึกเดียวกันพวงของ triads สามารถแสดงในบิตเพียง ในไบนารีเช่นกัน ดังนั้น 700 หมายความว่าสิ่งเดียวที่แน่นอนเป็น rwx ------ ในแง่ของการใช้สิทธิ์ ทุกคนที่ชัดเจนเกี่ยวกับที่? เย็น และเพื่อให้ chmod 111 จะให้ ซึ่งสิทธิ์ในการไฟล์? ให้พวกคุณสอง วินาทีที่จะแปลงนี้ โปรดจำไว้ว่าครั้งแรก สามคือสำหรับผู้ใช้ แก๊งที่สองคือกลุ่ม และสามที่สามสำหรับทุกคน และเพื่อให้ chmod 111 ซึ่งจะให้ ประเภทของสิทธิ์และเพื่อใคร? ใช้เวลาสองสามวินาทีเพื่อ คิดเกี่ยวกับมันและกลับมา ใช่ ผู้ชม: เพ​​ื่อให้ทุกคนสามารถดำเนินการได้ ANDI PENG: Yup ว่า ผู้ชม: แต่ไม่มีใครสามารถอ่านหรือเขียน ANDI PENG: และรู้สึกฟรี ที่จะอธิบายให้ทุกคน วิธีการที่คุณมาสรุปว่า ผู้ชม: ดีสำหรับผู้ใช้ที่ กลุ่มและโลกก็คือทั้งหมดที่ 1, ซึ่งเป็นรหัสสำหรับปฏิบัติการ ANDI เป็ง: ใช่ว่า ดังนั้น 1 ในกรณีนี้ทั้งหมดที่เรารู้คือ ที่เป็นรหัสปฏิบัติการ เพราะการอ่านคือ 4 การเขียนเป็น 2 และปฏิบัติการเป็น 1 เพื่อให้เป็นทั้งสาม triads 1 ที่ หมายความว่าไปทั่วโลกให้กับผู้ใช้ และกลุ่มที่พวกเขา ทุกคนที่ปฏิบัติการ ทุกคนที่ดีกับที่? ตกลง. ดังนั้นวิธีที่สอง ที่เราสามารถทำได้จริง คุณเขียนเรื่องนี้ก็เป็น ก็สามารถทำ chmod บวก x วิธีหรือทั้งหมดทุกคน บวกหมายถึงการให้สิทธิ์ในการ แล้ว x หมายถึงการปฏิบัติการ จึงมีคำสั่งที่สอง เหมือนจริง ดังนั้นหากคุณต้องการที่จะเรียกใช้ นี้ใน terminal ของคุณ คุณทำ chmod 111 ชื่อของ ไดเรกทอรีหรือแฟ้มของคุณ หรือคุณสามารถทำ chmod บวก x, ชื่อของไฟล์ไดเรกทอรีของคุณ สิ่งที่เหมือนกันเพียงวิธีที่ง่ายขึ้น บางทีสำหรับบางคนที่จะเป็นตัวแทนหรือการเปลี่ยนแปลง สิทธิ์ของแฟ้ม ทุกคนตกลงกับ chmod ก่อนที่เราจะเดินหน้าต่อไป? เย็น ดังนั้นตอนนี้เรากำลังจะมุ่งหน้าเข้าสู่ ไม่กี่ภาพนิ่งของแนวคิดที่เป็นนามธรรมมาก ว่าฉันสวยมาก จะสายลมผ่าน และก็ตกลงกันโดยสิ้นเชิงถ้าคุณ ไม่เข้าใจทุกอย่าง แม้ตอนนี้ผมก็ยังทำไม่ได้จริงๆ เข้าใจทุกอย่างสมบูรณ์ แต่ก็มากขึ้นในการได้รับ ความเข้าใจระดับบนสุด ของวิธีการบางส่วนของสิ่งเหล่านี้ทำงาน ดังนั้นเราจะไปพูดคุย ได้อย่างรวดเร็วเกี่ยวกับ TCP / IP ซึ่งเป็นเพียงควบคุมการรับส่ง พิธีสารเฉือนอินเทอร์เน็ตโปรโตคอล จำจากการบรรยาย เดวิดเขาไม่สอนคุณ ตัวอย่างที่เขาต้องการผ่าน บันทึกในซองจดหมาย ถึงชอบด้านบนของห้องบรรยายหรือไม่ ดังนั้นในหอประชุมโรงเรียนกฎหมาย เดวิดแสดงให้เห็นเป็นหลัก วิธี TCP / IP ทำงานใน ความรู้สึกที่มันทั้งหมด คือเป็นวิธีการสร้างความมั่นใจว่าข้อมูล ได้รับการจัดส่งทั่วเซิร์ฟเวอร์ หรือบนอินเทอร์เน็ต ดังนั้นในตัวอย่างของซองจดหมาย และข้อความที่ผู้ใช้ที่สิ้นสุด จะได้เห็นว่าโอ้ฉันต้องการที่จะ ได้รับสี่แพ็คเก็ตข้อมูล แต่ที่จริงผมได้รับเพียงสาม นั่นหมายความว่าฉันจะต้องหายไปอย่างใดอย่างหนึ่ง และอีกคนหนึ่งไม่ได้ส่งมอบ และเพื่อให้ TCP / IP บนอินเทอร์เน็ต ผ่านเครื่องคอมพิวเตอร์ของคุณและเซิร์ฟเวอร์ ไม่สิ่งเดียวที่แน่นอน ทั้งหมดก็ไม่สามารถระบุ กรอบในการที่ข้อมูลสูญหาย แพ็คเก็ตสามารถไม่พอใจและได้รับ เช่นเดียวกับบนอินเทอร์เน็ตเมื่อคุณกำลังพยายาม ในการเข้าถึงไฟล์ออนไลน์หรือส่งไฟล์ ให้เพื่อนของคุณหรือดูที่เว็บ เบราว์เซอร์พันและนับพัน พันล้านและพันล้าน ไบต์ของข้อมูล จะถูกโอนต่อมิลลิวินาที และมันก็เป็นจริงๆสับสน และมันก็เป็นเรื่องยากที่จะ จริงรู้ว่าสิ่งที่ถูกส่งไป และสิ่งที่ไม่ได้รับการส่ง และเพื่อให้ TCP / IP เพียงระบุ กรอบเหนียว ที่เว็บของคุณ เบราว์เซอร์และเซิร์ฟเวอร์ของคุณ ชนิดของสามารถสื่อสาร กับแต่ละอื่น ๆ เพียงแค่ ให้แน่ใจว่ามีแพ็คเก็ต ทุกคนที่นี่และไม่มีอะไรที่หายไป และข้อมูลทั้งหมดที่คุณร้องขอ เป็นจริงแสดงอย่างถูกต้อง ทุกคนตกลงบนเพียงแค่นั้นมาก ระดับสูงสั้น ๆ เข้าใจไหม? เย็น ดังนั้นแล้วเรากำลังจะย้าย เข้ามาพูดคุยเกี่ยวกับ HTTP ซึ่ง เป็นเพียง Hypertext Transfer Protocol HTTP, ทั้งหมดมันเป็นสิ่งที่เป็นหน้าเว็บใด ๆ หรือไฟล์ที่มีการเข้าถึงในเว็บไซต์ของคุณ เซิร์ฟเวอร์จะส่งกลับแบบ HTTP รหัสสถานะในการตอบสนอง เพื่อร้องขอให้แน่ใจว่า ทั้งโอ้คำขอนี้ผ่านไป และทุกอย่างของการแสดงได้อย่างถูกต้อง หรือโอ้ไม่มี 404 บางอย่างผิดปกติ. โอ้ฉันไม่สามารถแสดง ทั้งหมดก็คือว่าสิ่งที่เป็น คุณกำลังพยายามที่จะเข้าถึง ใช้เป็นผู้ใช้พยายามที่จะเข้าถึง ใน internet-- เพียงแค่การทำให้แน่ใจว่า ที่คุณทั้งสองได้ประสบความสำเร็จ เข้าถึงสิ่งที่มันเป็นหรือไม่ เข้าถึงได้ประสบความสำเร็จในสิ่งที่มันเป็น และเพื่อให้สถานะของ HTTP รหัสเพียงให้คุณ ความหมายของความสามารถที่จะทราบว่า หรือไม่ก็ประสบความสำเร็จหรือไม่ ดังนั้นตัวอย่างเช่นการร้องขอตัวอย่าง คุณสามารถดูที่นี่มันเป็น โดยทั่วไปมักจะมีสี่สาย เรามี HTTP GET 1.1 ซึ่งเป็นเพียง URL คำขอวิธีการโปรโตคอล รุ่นชื่อสนาม และค่าของฟิลด์ จึงไม่จำเป็นต้องสมบูรณ์ จดจำอะไรที่นี่ เพียงแค่ชนิดของความคุ้นเคย ตัวเองด้วยวิธีเหล่านี้ดู ในตัวอย่างนี้ขอวิธีการ URL ที่เป็นเพียงสิ่งที่มีการร้องขอ คุณกำลังจะส่งเซิร์ฟเวอร์ ชอบเดี๋ยวก่อนเซิร์ฟเวอร์ผมต้องการ เข้าถึง yadda, yadda, yadda, หน้า HTTP โปรโตคอลรุ่นที่เป็นเพียงสิ่งที่ รุ่นโฮสต์ของคุณหรือเซิร์ฟเวอร์ของคุณ จะใช้ในการเข้าถึงข้อมูล ชื่อเขตเป็นเว็บไซต์หรือที่ URL ที่คุณกำลังพยายามที่จะเข้าถึง ในกรณีนี้ www.apple.com และความคุ้มค่าสนาม เพียงแค่ชื่อโดยทั่วไปค่า และจะสามารถเรียงลำดับของการรวมกันใด ๆ ของตัวอักษรหรือตัวเลขหรืออะไรก็ตาม ดังนั้นการร้องขอโดยทั่วไปดังนั้น สิ่งที่เครื่องคอมพิวเตอร์ของคุณจริง ส่งไปยังเซิร์ฟเวอร์ที่บอกว่าเดี๋ยวก่อน คุณรู้ว่าสิ่งที่ฉันต้องการแสดง ที่ชนิดของการร้องขอ ที่พวกเขาได้รับจริง ตัวอย่างเช่นการตอบสนองของสิ่งที่ เซิร์ฟเวอร์จะส่งกลับมาให้คุณ จะสวยมากในสิ่งเดียวกัน ยกเว้นที่มีรหัสสถานะที่ด้านบน ดังนั้น 200 2 0 0 อยู่เสมอ รหัสสถานะตกลง ชอบตกลงคำขอนี้ผ่านไป คุณก็สามารถที่จะเข้าถึง ทุกอย่างถูกต้อง ชีวิตเป็นสิ่งที่ดี. ชีวิตเป็นสิ่งที่ดี ทุกอย่างเป็นสิ่งที่ดีทั้งหมด และอื่น ๆ เพียงแค่นี้บอกเบราว์เซอร์ของคุณและ เซิร์ฟเวอร์ของคุณเดี๋ยวก่อนดีทุกอย่าง ผมได้รับข้อมูลทั้งหมดที่ฉันต้องการ เย็น แต่ปัญหาก็คือ บางครั้งปัญหาที่เกิดขึ้น เมื่อคุณ have-- สุดท้ายผมคิดว่า ฉันพูดคุยเกี่ยวกับรายการที่ซ้ำกัน คุณมีการตอบสนองที่ดีน้อย ดังนั้นตัวอย่างเช่น 404 เป็นหน้าไม่พบ บางครั้งคุณมีการเข้าถึงพระราชวังต้องห้าม คุณมีอื่น ๆ อีกมากมาย รหัสสถานะว่าฉัน แน่ใจว่าคุณได้เห็นเมื่อคุณ พยายามที่จะทำวิจัยเกี่ยวกับอินเทอร์เน็ต และเบราว์เซอร์ของคุณให้ ไม่มีไม่สามารถเข้าถึง และคุณต้องการดีอึ ดังนั้นเพียงแค่สวยมากมี บางรหัสสถานะรักกัน อาจจะทำความคุ้นเคย ซึ่งคนเหล่านั้น หนึ่งที่สนุกที่สุด ฉันคิดว่าฉันเคยได้ยิน of-- ถ้าคุณเกิดขึ้น มองขึ้นทั้งหมดของพวกเขา ออนไลน์ด้วยเหตุผลบางอย่างมี จริงรหัสสถานะที่แท้จริง ที่เรียกว่า 418 ผมกาน้ำชา ฉัน googled ที่ ที่มาของเรื่องนี้มาจาก และเห็นได้ชัดหนึ่ง Fools เมษายน วันทศวรรษที่ผ่านมาสองสามที่ผ่านมา คนที่คิดว่ามันจะเฮฮา เพื่อสร้างรหัสสถานะใหม่ที่เรียกว่า 418 ฉันกาน้ำชา ถูกต้องตามกฎหมายชื่อนี้ รหัสเรียกว่าฉันกาน้ำชา ลืมสิ่งที่หน้าคุณจะต้อง ไปที่จริงทำให้การแสดงผลนี้ แต่เห็นได้ชัดคุณสามารถจริง ได้รับรหัสสถานะของฉัน กาน้ำชาอย่างใด ผ่านการทำอะไรบางอย่าง ดังนั้นจึงมีนับร้อย หลายร้อยรหัสสถานะ บางส่วนของพวกเขาให้มากขึ้น ความรู้สึกกว่าคนอื่น ๆ แต่สวยมากคุ้นเคย ตัวเองกับคนที่พบมากที่สุด ร่างกายนิติบุคคลที่ร้องขอ ในระยะสั้นและอ้วนเห็นได้ชัด ดังนั้นบางครั้งมีมากขึ้น ข้อผิดพลาดที่น่ากลัวกว่าฉันกาน้ำชา แต่นี้เป็นสิ่งหนึ่งที่ผมคิดว่า ชนิดที่คุณหวังที่จะตี แต่ผมไม่คิดว่าคุณจะ ทุกคนที่ดีกับสถานะเพียง รหัสร้องขอกระบวนการทำ ข้อมูลจะถูกส่งแน่ใจว่าถูกต้องหรือไม่ ดังนั้นตอนนี้เรากำลังจะเปลี่ยนผ่าน เข้ามาเป็นส่วนหนึ่งของความสนุกของส่วนในวันนี้ ที่เราพูดเล็กน้อยเกี่ยวกับ HTML HTML ทั้งหมดมันเป็น HyperText ภาษามาร์กอัป มันเป็นเพียงภาษามาตรฐาน ที่คุณใช้ในการสร้างเว็บ หน้าบนอินเทอร์เน็ต ดังนั้นหน้าเว็บใด ๆ สิ่งที่ หน้าเว็บที่คุณชื่นชอบ? หน้าเว็บที่คุณชื่นชอบคืออะไร? ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ขออภัย? ผู้ชม: Tumblr ANDI PENG: Tumblr ดังนั้น Tumblr ถูกเขียนในรูปแบบ HTML และเพื่อให้เราจริงจะผ่านไปและ เล่นรอบกับบางสิ่งเหล่านี้ หลังจากนั้น. ทุกอย่างสวยมากคุณ จำเป็นที่จะต้องเรียนรู้ที่จะรู้ว่า ในการเขียน HTML คุณอาจจะสามารถ เพียง Google บนอินเทอร์เน็ต HTML ก็ไม่ได้โปรแกรมเช่นซี ที่คุณสามารถสร้างตัวแปรและทำ สิ่งดีๆกับมัน มันขึ้นเพียงโอ้นี้เป็นวิธีที่ผม ต้องการสิ่งที่จะปรากฏบนเว็บไซต์ของฉัน และฉันก็จะใส่ไว้ใน และก็จะสไตล์มัน ดังนั้น HTML, ในความรู้สึกก็เช่นเดียวกับ ภาษาการจัดรูปแบบหรือแม่แบบ มันเป็นเรื่องง่ายมาก มันง่ายมากที่จะเรียนรู้ ง่ายมากที่จะเขียนใน กว่าการเขียนโปรแกรมของคุณโดยทั่วไป ภาษาที่ง่ายมาก ผู้ใช้สามารถเข้าถึงได้มากและเป็นมิตร ดังนั้นเราจริงที่เกิดขึ้นในการเล่น รอบเขียนหน้าของเราเองในวันนี้ แต่ก่อนที่เราจะเริ่มต้นผมแค่อยากจะ ไปกว่าวิธีที่ดีที่สุดสั้น ๆ เพราะเป็นเช่น HTML ง่าย ภาษาและเพราะแม้แต่ ถ้าคุณทำสิ่งที่สองที่ไม่ถูกต้อง บางครั้งมันก็อาจจะไม่แจ้งให้ทราบล่วงหน้า เราต้องการที่จะให้แน่ใจว่าเรา จริงการยึดมั่นในการปฏิบัติที่ดีที่สุดของเรา เพื่อให้แน่ใจว่าสิ่งที่ อาจจะไปรอบ ๆ แต่ จะไม่เสมอไปที่จะได้ไปทางด้านขวา ตรวจสอบให้แน่ใจว่าพวกเขากำลังลดลง ดังนั้นสวยมากให้แน่ใจว่า ปิดของคุณแท็กของคุณทั้งหมด เมื่อคุณเขียนในรูปแบบ HTML หากคุณกำลังเปิด ร่างกายให้แน่ใจว่าคุณ ปิดกับร่างกายบาง คุณต้องการที่จะให้แน่ใจว่าคุณ หน้าเว็บจะตรวจสอบโดยใช้ สิ่งที่เรียกว่า Validator W3 คุณสามารถเพียงแค่ Google ที่ออนไลน์ และมีการเชื่อมโยงกับมัน แล้วคุณต้องการที่จะ แยกต่างหาก HTML ซึ่ง ภาษามาร์กอัปของคุณจากสไตล์ของคุณ ซึ่งเป็นภาษา CSS ซึ่งดาวิด แสดงให้เห็นว่าเรายัง จะไปเล่นบิตพร้อมบรรยาย เย็น ดังนั้นตลอดเวลาที่คุณต้องการเรียกใช้ HTML ในเครื่อง CS50 ที่ เรากำลังจะไปทำงาน โปรแกรมที่เรียกว่าอาปาเช่ ซึ่งทั้งหมดก็เป็นเพียงการสร้างขึ้นใน เว็บเซิร์ฟเวอร์ที่ทุกคนใน CS50 มีการเข้าถึง เราเรียกมันว่า apache50 เพียงเพราะเรา ชอบที่จะเรียกทุกอย่าง 50 CS50 ดังนั้นวิธีการที่คุณเริ่มต้นเว็บ CS50 ที่ เซิร์ฟเวอร์โดยการพิมพ์ในคำสั่งของคุณ สาย apache50 จุดเริ่มต้น และถ้าคุณต้องการจะให้มันสิ้นสุดที่ใด ๆ เวลาที่คุณทำ apache50 ไม่มีจุดสิ้นสุด และคุณเพียงแค่กด Enter และมันควรจะมุ่งหน้าไปที่นี่เร็ว ๆ ได้. ดังนั้นฉันแค่ไปอย่างรวดเร็วไปกว่า ตัวอย่างของหน้าเว็บสั้น ๆ จริงๆ และเรากำลังจะไปใช้จ่าย เช่น 10, 15 นาทีเล่น รอบการเขียนหน้าเว็บของเราเอง ตกลง. ดังนั้นที่นี่ใน IDE-- ทุกคนจะเห็นว่า? ไม่ได้จริงๆ ที่นี่ผมจะซูมเข้า ฉันมีเพียงแม่แบบสั้น ๆ นี้ ที่นี่มีอะไรอยู่ในนั้นจริง เรากำลังจะเขียนได้อย่างรวดเร็ว โปรแกรม HTML ที่เราเพียง ทักทายกับโลก สิ่งเดียวกันดังนั้นในขณะที่ใน C ตอนนี้เรากำลัง เพียงแค่จะทำมันในรูปแบบ HTML ไม่มีใครต้องการจริงเพียง ลองให้ฉันสิ่งแรกที่คุณ จะต้องใส่ในเอกสาร HTML? ใช่ ผู้ชม: วงเล็บที่ [ไม่ได้ยิน] ANDI PENG: อ๋อ ดังนั้นสิ่งที่ไม่ซ้ำกันมากที่จะ HTML ที่เรามักจะแบบดั้งเดิม ไม่พบคำสั่งอื่น ๆ ระดับสายการเขียนโปรแกรมภาษา คือการที่เราจริง ระบุชนิดของไฟล์ ว่าเรื่องนี้เป็นไปได้ ที่ด้านบนของรหัสของเรา ดังนั้นใน instance-- นี้ผมคิดว่า นั่นคือคำสั่งที่ถูกต้องใช่มั้ย? ได้. ที่ด้านบนคุณเพียงต้องการที่จะรวม ปัง DOCTYPE html ที่ในวงเล็บเพียง ที่จะบอกเครื่องคอมพิวเตอร์ของคุณเฮ้มองออก และเอกสาร HTML จะมา และจากนั้นจะทำอย่างไรที่เราต้องการ ที่จะเริ่มออกไฟล์ของเราหรือไม่ ถ้าเราเพียงต้องการที่จะกล่าวทักทายมี หน้าเว็บที่กล่าวสวัสดีกับโลก วิธีการที่เราทำไปเกี่ยวกับการสร้างนี้หรือไม่? อันที่จริงให้หันไปยัง Google และเราจะสามารถทำเช่นนี้ ได้. เราจะไปที่นั่น. ดังนั้น HTML ที่คุณสามารถดู, เบราว์เซอร์ของฉันเป็นจริง จัดแต่งทรงผมโดยอัตโนมัตินี้สำหรับฉัน สิ่งเดียวใน C เมื่อคุณ สร้างวงเล็บปีกกาเปิด เบราว์เซอร์ของคุณโดยอัตโนมัติ เพิ่มในวงเล็บปีกกาใกล้ โชคดีที่ IDE เรารักที่จะ ทำเช่นนี้สำหรับเราเป็นอย่างดี ดังนั้นตอนนี้เราสามารถชนิดของการพิมพ์ จุดเริ่มต้นของแท็กที่ และมันจะบอกเราเสมอไป อย่าลืมที่จะพิมพ์ในตอนท้ายของแท็ก ผมคิดว่านี้จะต้องพิมพ์ใหญ่ แล้วเราต้องการเพิ่มเสมอ หัวที่เป็นชื่อเรื่อง เราเพียงแค่ต้องการอาจจะเรียก สวัสดีนี้แล้วร่างกาย และมีคุณไป ที่เป็นจริงเอกสาร HTML ของเรา ดังนั้นวิธีการที่ใด ๆ เอกสาร HTML สไตล์เสมอ in-- สิ่งเดียวกัน กับเป็นโมฆะหลัก int คุณต้องการที่จะมี HTML แท็กเปิดและปิด ที่ด้านบนและด้านล่างของรหัสของคุณ คุณต้องการที่จะมีหัวด้านในของ ที่มีชื่อเป็นเพียงสิ่งที่ เป็นไปเพื่อแสดงแท็บของเว็บของคุณ หน้าและร่างกายแล้วภายในที่ จริงจะแสดงเนื้อหา ของสิ่งที่คุณต้องการจะทำ ดังนั้นหากคุณต้องการที่จะทำงานจริง นี้ฉันจะซูมกลับออกมา จริงๆคุณสามารถเริ่มต้น จุดเริ่มต้น apache50 เย็น และอื่น ๆ ที่คุณสามารถดูตอนนี้ การเชื่อมโยงนี้ได้โผล่ขึ้นมา มันบอกว่าเว็บไซต์ของคุณอยู่ในขณะนี้ สามารถดูได้ที่ลิงค์ด้านล่าง ดังนั้นสิ่งที่เรามี IDE done-- ไม่ IDE, sorry-- ใช่ IDE ของเราได้ทำคือการสร้างเว็บ ซึ่งการเชื่อมโยงทั้งหมดของหน้าเว็บของเรา สามารถเข้าถึงได้บนเซิร์ฟเวอร์ ดังนั้นลองมาดูที่นี่ ลองคลิกที่นี้ให้ไปที่ hello.html และคุณจะเห็นที่ง่ายมาก หน้าเว็บของโลกสวัสดี ตกลง. เราจริงไปเพียง มี everyone-- ใช่อะไรขึ้น? ผู้ชม: ฉันมีคำถามพื้นฐาน ANDI PENG: Yup ผู้ชม: คุณบันทึกวิธี ไฟล์ของคุณเป็น HTML อยู่แล้ว? ANDI เป็ง: ใช่ ดังนั้นถ้าผมจะสร้างไฟล์ใหม่ ถ้าฉันทำแฟ้มใหม่ Untittle ถ้าผมทำ section.html บูม นั่นคือทั้งหมดที่ฉันต้องทำ ผู้ชม: [ไม่ได้ยิน] ANDI PENG: เลขที่ ผู้ชม: [ไม่ได้ยิน] ANDI PENG: เลขที่ ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ใช่ สวยมากขยายบน ไฟล์ที่อยู่ภายใน IDE ของคุณ ที่บอกคอมพิวเตอร์ว่า บอกเบราว์เซอร์, hey มองออก นี้จะเป็นรหัส เขียนในภาษานี้ ดังนั้นสำหรับตัวอย่างเช่นในไมโครซอฟท์ Word, สิ่งที่ทำเอกสาร Word ทั้งหมด จบลงด้วยสิ่งที่ขยาย? .doc หรือ .docx ใช่มั้ย? สิ่งที่จะเป็นการที่จะระบุ ระบบปฏิบัติการของคุณเดี๋ยวก่อน คุณมีเอกสาร Word ขึ้นมา เปิดด้วย Word สิ่งเดียวกันกับไฟล์ PDF มันรู้โอ้ฉันต้องการ ที่จะเปิดไฟล์นี้ ด้วย Adob​​e Reader หรือ Adob​​e Acrobat และเพื่อให้การดำเนินงานส่วนขยาย เช่นเดียวกับในคอมพิวเตอร์ของคุณ ถ้าคุณระบุหน้ารหัสของคุณ จะตั้งชื่อ HTML แล้วมันจะรู้ โอ้คุณได้มีโค้ด HTML ฉันจะรักษามันเป็นโค้ด html ดังนั้นจึงเป็นซุปเปอร์สมาร์ทในแง่ที่ว่า เพื่อให้ทุกคนลองมาเช่น 10 นาที และเพียงแค่การสร้างเว็บไซต์ของเราเอง ให้เพิ่มในสิ่งที่น่ารัก รู้สึกอิสระที่จะพูดสิ่งที่คุณต้องการ ผมแค่อยากจะให้แน่ใจว่า เซิร์ฟเวอร์ของทุกคนกำลังทำงานอย่างถูกต้อง ก่อนที่เราจะปลดปล่อยคุณเข้าสู่ pset เพราะถ้าเซิร์ฟเวอร์ของคุณ ไม่ได้ทำงานสำหรับ pset ที่ ที่จะเป็นจริงที่เลวร้ายจริงๆ ฉันแค่จะไปลอยไปรอบ ๆ และ ดูสิ่งที่ทุกคนที่ทำงานเกี่ยวกับ เป็นยังไงบ้าง? ผู้ชม: ผมเพิ่งเปิดในคอมพิวเตอร์ของฉัน ANDI PENG: ที่ตกลง ผู้ชม: [ไม่ได้ยิน] ANDI PENG: เพียงแค่คุณ IDE ใช่ ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: มันตกลง ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ดีทั้งหมด ทุกคนเข้าถึง เว็บเซิร์ฟเวอร์ของพวกเขา OK? apache50 กำลังทำงาน OK? ผมคิดว่าในบางส่วนของ ส่วนอื่น ๆ ที่เรา มีปัญหากับคนที่ไม่ได้ ความสามารถในการเข้าถึงเซิร์ฟเวอร์ ใช่ ดังนั้นคุณเพียงแค่ใช้ apache50 พื้นที่เริ่มต้นช่วงเวลาที่ว่าง ผู้ชม: [ไม่ได้ยิน] ANDI PENG: Yup ดี? ผู้ชม: [ไม่ได้ยิน] ANDI PENG: โอ้, OK ดังนั้นคุณควรจะมีพื้นที่ apache50-- ดังนั้น ผู้ชม: ฉันไม่ ANDI PENG: พื้นที่ --start ผู้ชม: โอ้จุดพื้นที่ ANDI PENG: Yup จุดพื้นที่ มีคุณไป ดังนั้นแล้วถ้าคุณมี เพจ HTML สร้างขึ้น แล้วคุณก็สามารถไปที่ เพื่อการเชื่อมโยงที่จะระบุ และคุณควรจะสามารถเข้าถึงได้ ทุกคนสามารถที่จะ เข้าถึงหน้าเว็บของพวกเขา OK? ผู้ชม: [ไม่ได้ยิน] ANDI PENG: โอ้ที่ตกลง ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ใช่ ฉันคิดว่าคุณจริงสามารถเปิด ภายในเบราว์เซอร์เบราว์เซอร์ และไม่เพียง แต่เบราว์เซอร์ของคุณ IDE ใช่ครับผมคิดว่าถ้าคุณคัดลอกและวาง ผู้ชม: และแล้ว เราจะปิดอย่างไร [ไม่ได้ยิน] ANDI เป็ง: ใช่คุณทำ apache50 หยุดที่มีระยะเวลาไม่ ได้. ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ด้วยระยะเวลาไม่ ใช่ เราจะไปที่นั่น. ได้. เรากำลังสร้างหน้าเว็บของเราเอง ผู้ชม: โอ้เย็น ANDI เป็ง: ใช่ ผู้ชม: ฉันมีคำถาม Apache ดังนั้น 50-- ANDI PENG: 50 ใช่ ผู้ชม: [ไม่ได้ยิน] ANDI PENG: อะไรนะ? ที่แปลก. ดูว่าเป็นชนิดของปัญหา ที่เกิดขึ้นก่อนที่จะได้รับ ตกลง. ดูฉันหลังจากที่ส่วน เพราะเราจะมีบางส่วน ปัญหาเกี่ยวกับเซิร์ฟเวอร์ และคุณต้องการที่จะทำให้ แน่ใจว่าเซิร์ฟเวอร์ของคุณ ก่อนที่จะเริ่มทำงาน pset เพราะคุณกำลังจะจำเป็นต้องใช้มัน ใช่ มีคนอื่นที่ไม่ได้รับ สามารถที่จะได้รับเซิร์ฟเวอร์ของตนจะเริ่มต้นอย่างไร สำหรับบรรดาของคุณที่ต้องการเพิ่ม รูปแบบเพิ่มเติมเพื่อให้หน้าเว็บของคุณ เราจริงสามารถทำสิ่งที่ ดาวิดได้กระทำในการบรรยายเป็นอย่างดี ซึ่งคือการสร้างรูปแบบเพิ่มเติม แผ่นซึ่งเป็นจุด CSS, Cascading แผ่นสไตล์และก็จริงเพิ่มใน ดังนั้นตัวอย่างเช่นเราได้สร้างเพียง สวยมากเกือบหนึ่งเดียวกันแน่นอน ดาวิดได้กระทำในการบรรยาย คุณสามารถสวยมากเพียงแค่ทำร่างกาย คุณมีสิ่งที่เรียกว่าแท็กที่ คุณสามารถนำไปใช้กับ IDE ส่วนสิ่งที่ ที่คุณต้องการภายในของคุณ ที่เกิดขึ้นจริงที่หน้า HTML เพื่อให้ร่างกายของหน้าคุณ สามารถทำข้อความศูนย์จัด แล้วฉันจะมีความคิดสร้างสรรค์ แท็กที่เรียกว่าภายในด้านบน ที่ฉันต้องการสิ่งเหล่านี้ เกิดขึ้นกำหนดขนาดพิกเซลที่มีขนาดใหญ่ สำหรับตัวอักษร ฉันต้องการน้ำหนักตัวอักษรจะเป็นตัวหนา และฉันต้องการสีไป เป็นสีฟ้า, พลเพียง ค่าที่ฉันตัดสินใจที่จะเลือก ฉันสามารถสร้างแท็กอื่นที่เรียกว่ากลาง ขนาดตัวอักษรทำให้มันเป็นบิตขนาดเล็ก แล้วผมสามารถสร้างแท็กอีก เรียกว่าด้านล่างที่ฉันต้องการขนาดตัวอักษร จะเป็นยังแม้มีขนาดเล็ก และเพื่อให้สวยมากนี้เป็นเพียงตัวอย่าง รหัสแหล่งที่มาหรือแหล่งที่มาของแผ่นสไตล์ ว่ามันเป็นเรื่องง่ายมากที่จะเพียงแค่ Google ถ้าคุณบอกว่าโอ้ฉันต้องการตัวอักษรของฉัน ที่จะเอียงและสีเขียวเข้ม คุณอาจจะสามารถของ Google และจากนั้นก็จะบอกคุณ แท็กที่เหมาะสมหรือรหัสในการสร้าง ดังนั้นวิธีการที่คุณจะจริง ชนิดของการมีนี้ในเอกสาร HTML หรือใช้เป็นสิ่งที่คุณมี ที่จะทำนี่คือที่หัว เพิ่มลิงค์ไปยังสไตล์ชีต ดังนั้นคุณก็สามารถเชื่อมโยงเท่ากับ href สิ่งที่ชื่อของแผ่นสไตล์ของคุณ คือ. และแล้วความสัมพันธ์ เป็นสไตล์ชีท ดังนั้นภายในเอกสาร HTML ใด ๆ ตราบเท่า ในขณะที่คุณรวมถึงแผ่น CSS จุดนี้ คุณควรจะสามารถที่จะเข้าถึง และมีคุณสมบัติที่มี ดังนั้นตัวอย่างเช่นที่นี่ฉันได้เพียงแค่ สร้างหน้าเว็บอีกตัวอย่างหนึ่ง นี้คือการต้อนรับการส่วน CS50 วันอังคาร 2:00-03:30 กับฉัน และจากนั้นผมได้เพิ่มภาพน่ารักที่ เราอาจจะสามารถที่จะเห็น ดังนั้นถ้าคุณลองดูที่นี่ ถ้าคุณไปที่ style.html, เราได้สร้างหน้าเว็บที่มีลูกแมว เพราะลูกแมวที่น่ากลัว ดังนั้นการเพิ่มภาพเป็นเพียงการเชื่อมโยง img SRC สวยมากถ้ามี การเรียงลำดับของคุณลักษณะใด ๆ คุณต้องการที่จะเพิ่มให้กับคุณ website-- จึงขอบอกว่า คุณต้องการเพิ่มเมนู หรือแถบค้นหาหรือชอบ image-- Google เพียงว่าจะทำอย่างไร และคุณก็ป๋อมในรูปแบบที่ และคุณก็สามารถสวย มากเพียงเพิ่มใน มันจริงๆง่ายจริงๆ เรากำลังสร้างของเราเอง หน้าเว็บได้ในขณะนี้ ถ้าคุณต้องการ-- ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ขออภัย? ผู้ชม: [ไม่ได้ยิน] ANDI PENG: โอ้ div เป็นเพียงส่วนหนึ่ง บอกฉันว่าโอ้ฉันมี บางส่วนที่เรียกว่า กลางในการที่ผมใช้ แท็ก CSS ของฉันแล้ว ส่วนอื่น ๆ ของฉันกับด้านล่าง นั่นคือทั้งหมดที่มันบอกคุณ เพราะมันเป็นเรื่องดีที่จะทำให้ สิ่งที่เรียบร้อยในการสั่งซื้อ ดังนั้นโปรแกรมรู้ว่าวิธีการทำงาน และคิดว่าฉันสามารถคัดลอกวางนี้ ในเบราเซอร์ที่เกิดขึ้นจริงของฉันเช่นกัน มันควรจะปรับ ใช่ เย้. ดังนั้นหากทุกคนต้องการที่จะเพียงแค่ ลองสร้างหน้าเว็บ เราจะใช้เวลาอีก 2-3 นาที ผมแค่อยากจะให้แน่ใจว่า เซิร์ฟเวอร์ของทุกคนกำลังทำงานอยู่ และทุกคนมี ความคิดของวิธีการทำที่ ถ้าพวกคุณต้องการ จะออกจากคอมพิวเตอร์ของคุณ ยังคงไม่ทำงาน? ผู้ชม: ฉันแค่ [ไม่ได้ยิน] ANDI PENG: อาจจะลองปรับปรุง 50 เช่นกัน ใช่ ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ใช่ ดังนั้นวิธีการที่คุณจะเริ่มต้นใหม่ เว็บเซิร์ฟเวอร์ใน IDE เป็นเพียง ทำ apache50 พื้นที่เริ่มต้นพื้นที่จุด ฉันแค่อยากจะให้แน่ใจว่า เซิร์ฟเวอร์ของทุกคนกำลังทำงานตกลง ผู้ชม: ที่นี่ใน terminal หรือไม่ ANDI เป็ง: ใช่ ผู้ชม: [ไม่ได้ยิน] ANDI PENG: อาปาเช่ ที่จริงผมคิดว่าคุณ บางสิ่งบางอย่างที่ทำงานอยู่แล้ว ใช่คุณจริง ทำงานเซิร์ฟเวอร์ที่แตกต่างกัน ใช่คุณดี ตราบใดที่การทำงานคุณตกลง ผู้ชม: ตกลง ANDI PENG: มีสองเป็น วิธีการที่จะใช้เซิร์ฟเวอร์ ดังนั้นตราบใดที่หนึ่งในวิธีการ เป็นคนที่ทำงานก็ต้องทั้งหมด เราจะใช้เวลาอีกนาที เพียงแค่ชนิดของการเสร็จสิ้น สัมผัสการตกแต่งของสิ่งที่ หน้าเว็บของพวกคุณอยากจะทำ ทุกคนจะทำงานตามทางนั้น เซิร์ฟเวอร์ของทุกคนมี นอกเหนือจากการทำงานสำหรับคุณ? เราจะคิดออกว่า และ HTML ของที่ค่อนข้างง่าย ดังนั้นผมจึงคิดว่าเราดี ใช่ ฉันจะกลับมา. ผู้ชม: [ไม่ได้ยิน] ANDI PENG: OK ผู้ชม: ดังนั้นมันจึงเป็นเพียง เริ่มที่จะโหลดขึ้น ANDI PENG: ไม่ต้องกังวล ดังนั้น HTML มีรหัสแหล่งที่มา จะออนไลน์หลังจากที่ส่วน นอกจากนี้เดวิดมีทั้งหมด พวงออนไลน์เช่นกัน เพียงแค่ชนิดของมันได้อย่างรวดเร็วเพื่อ ดูว่าหน้าเว็บ HTML จะเขียน มันเป็นเรื่องง่ายอย่างเป็นธรรม สิ่งที่คุณไม่ทราบว่าคุณสวย มากเพียง Google และคุณดี ผมแค่อยากจะให้แน่ใจว่า เซิร์ฟเวอร์ของคุณกำลังทำงานอยู่ ผู้ชม: มันมักจะทำเช่นนี้? ANDI เป็ง: มันไม่เคยเกิดขึ้นกับผม ผมไม่ทราบว่ามันยังสามารถจำศีล ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ผมคิดว่า everyone-- เหมืองไม่เคยจำศีลก่อน และผมก็ไม่ทราบว่าทำไม มันเป็นเรื่องแปลก. ผู้ชม: [ไม่ได้ยิน] ANDI PENG: คุณจะจำศีล? ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ใช่ ผู้ชม: มันตกลง ดังนั้นเมื่อมีการเปิด ANDI PENG: OK เราจะจัดการกับเซิร์ฟเวอร์บาง หลังจากที่ปัญหาส่วน คุณควรจะปรับ แม้ว่าคุณต้องการที่จะให้แน่ใจว่าคุณ พวกเขาได้รับการแก้ไขก่อนที่จะออก เพราะถ้าเซิร์ฟเวอร์ของคุณ ไม่ได้ทำงานแล้วคุณ จะไม่สามารถที่จะทำ pset เหมือนเป็นส่วนหนึ่งของ pset ใด ๆ ดังนั้นคุณจึงต้องการให้แน่ใจว่า ที่ทำงาน เย็น ทั้งหมดขวา บอกว่าลูกแมวลา ฉันใช้เวลานานมองหา ภาพลูกแมวที่จะนำมา ดังนั้น anyways ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ขออภัย? ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ผมคิดว่ามันอยู่ในเว็บไซต์ เช่นเดียวกับสเป็คหรือไม่ ผู้ชม: [ไม่ได้ยิน] ผมคิดว่าสเป็คเป็นเพียง ออนไลน์ในสัปดาห์ที่เจ็ด ฉันคิดว่ามันเรียกว่า pset6 แม้ แม้ว่าเราจะอยู่ในสัปดาห์ที่เจ็ดซึ่ง เป็นคอมพิวเตอร์เล็กน้อย ผู้ชม: แต่ผมหมายถึงถ้าคุณ ต้องการที่จะดู at-- ถ้าคุณ ต้องการที่จะดึงรุ่นของเรา เว็บไซต์จากเซิร์ฟเวอร์ของเราหรือไม่ ดังนั้นเหมือน server.c เป็น pset ใช่มั้ย? ถ้าคุณต้องการที่จะดูที่นี้ เช่นวิธีการตรวจสอบออกมา? ANDI PENG: โอ้จริง pset ทั้งหมดที่เรากำลังทำ ที่นี่จะ implementing-- ที่นี่ ฉันจะไปกว่านี้ในเวลาสั้น ๆ ดังนั้นสำหรับทุกคนที่มีอากาศเพียง ไปยังส่วนพวกคุณอยู่ในโชค มีวัสดุที่น้อยมากคือ ที่จริงวันนี้ครอบคลุม ฉันแค่จะใช้ต่อไป 20 นาทีไปกว่าความช่วยเหลือ pset เพราะมีประโยชน์บางอย่าง ฟังก์ชั่นที่จะช่วยให้ชีวิตของคุณ และหวังว่าเราจะออก จากที่นี่เช่นใน 20 นาที ตกลง. pset7 ดังนั้นเป็นสิ่งที่ผิด แม้ว่าเราจะอยู่ในสัปดาห์ เจ็ดก็จริง pset6 ฉันจะเปลี่ยนที่ ทั้งหมดที่เรากำลังทำใน pset6 คือการสร้างเว็บเซิร์ฟเวอร์ ที่เสียงที่น่ากลัวสุด และโดยเฉพาะอย่างยิ่งสำหรับผู้ที่ ท่านที่มีอยู่แล้ว มองไปที่รหัสกระจาย มีจำนวนมากของรหัสมากรหัส แต่มีการตกลงกันโดยสิ้นเชิง เพราะ nitty ทราย เป็นส่วนหนึ่งของการสร้างจริง เซิร์ฟเวอร์จะกระทำโดยเรา สิ่งที่คุณจะถามจริงๆ จะทำอย่างไรใน pset นี้ เป็นเพียงการที่จะทำจัดการสตริงบาง ในแฟ้ม I / O ก็จริง เหมือนที่ค่อนข้างง่าย ดังนั้นเมื่อคุณดาวน์โหลด that-- ที่ ที่นี่ได้จริงดาวน์โหลดแล้ว pset และนำดู? ทั้งหมดขวา ใช่ มีเหมือน 500 บรรทัดของรหัส ที่คุณกำลังจะได้รับเช่น เกิดอะไรขึ้น? และที่ดีทั้งหมด ให้แน่ใจว่าคุณดูเดิน throughs เพราะว่าดาวิด and-- ผมไม่ทราบว่า ฉันไม่คิดว่ามันเป็นของ Zamyla หนึ่งนี้ แต่ผมคิดว่าบางส่วนอื่น ๆ เดิน throughs เป็นธรรม ที่เป็นประโยชน์ในแง่ของการ เพียงแค่แจ้งให้คุณทราบ สิ่งที่เกิดขึ้นภายในของรหัสของคุณ และก็ตกลงกันโดยสิ้นเชิง เพราะสี่ฟังก์ชั่นที่คุณ ขอให้มีการดำเนินการจริง ศูนย์จะทำอย่างไรกับเซิร์ฟเวอร์ที่เกิดขึ้นจริง ทั้งหมดที่พวกเขาต้องทำคือเพียงแค่ แยกสายที่แตกต่างกัน การค้นหาผ่านสตริง เพื่อให้แน่ใจว่าสิ่งที่กำลังทำ สิ่งที่พวกเขาควรจะทำ ดังนั้นเพื่อให้ผลที่มี บางฟังก์ชั่นที่มีประโยชน์มาก โดยเฉพาะอย่างยิ่งสำหรับสตริง การจัดการที่เราควรทั้งหมด ไปกว่าที่ฉันคิดว่าฉันต้องการ จะมีประโยชน์มากสำหรับคุณผู้ชาย ที่จะเรียนรู้ก่อนที่จะพยายาม pset และพวกเขากำลังทั้งหมดที่มีอยู่ ภายในห้องสมุดสตริงของคุณ อาจมีประโยชน์มากขึ้น ฟังก์ชั่นผมยังไม่ได้รวมอยู่ที่นี่ เพราะผมไม่เคยใช้อย่างใดอย่างหนึ่งหรือ บางทีฉันก็ไม่ได้รู้ว่าพวกเขาอยู่ รู้สึกอิสระที่จะได้อย่างรวดเร็วผ่าน student.h เพราะมีเป็นไปได้มาก ฟังก์ชั่นที่มีประโยชน์มาก ดังนั้นหกที่ผมใช้มากที่สุดในของฉัน pset เมื่อฉันทำมันสัปดาห์ที่ผ่านมา เป็น strtok, strchr, strrcher, strstr, strcasecmp และ strcpy และอื่น ๆ ที่ผ่านมาสองอาจจะดูเหมือน สวยคุ้นเคยกับส่วนใหญ่ของคุณ กรณี Str เปรียบเทียบทั้งหมดก็ไม่สามารถเปรียบเทียบ สายที่จะตรวจสอบพวกเขาสำหรับความเสมอภาค รวมทั้งกรณีที่ และ strcpy เพียงสำเนา หนึ่งสตริงเป็นกันชน และเพื่อให้ทั้งสองควรจะดูเหมือนมาก ที่คุ้นเคยกับพวกคุณที่จุดนี้ เพราะเราได้ใช้พวกเขามาก โดยเฉพาะอย่างยิ่งสำหรับ psets ที่ผ่านมา แต่บางทีอาจจะเป็นครั้งแรกที่สี่ คุณยังไม่เห็นจนถึงขณะนี้ แต่ฉันจะเพียงแค่เดินผ่านพวกเขา เพราะพวกเขากำลังจะทำให้ชีวิตของคุณ จริงๆเรื่องง่าย for-- ไม่ใช่เรื่องง่าย แต่ง่ายมากสำหรับ pset จะเกิดขึ้นนี้ ตกลง. ดังนั้นถ่าน * strtok นี้เป็นฟังก์ชั่น คำนิยามสำหรับฟังก์ชั่นที่มีอยู่นี้ ภายในสตริงห้องสมุดชั่วโมง หากคุณจะได้รับการป้อนข้อมูลของ char * สตริงซึ่งเป็นเพียงสตริง หรือถ่านคง * deliminator, delim สำหรับระยะสั้น ทุกที่มันทำจะทำลายที่มีขนาดใหญ่ สตริงเป็นชุดของสิ่งที่เราเรียก สัญญาณแยกจากกันโดยค่าบางอย่าง ดังนั้นในแง่หนึ่งถ้าผมจะให้ คุณ section.7.php นี้เป็นสตริง เพื่อที่จะเป็นถ้าผมจะผ่าน ในครั้งนี้เป็น STR ของฉันของฉันถ่าน * Str, ถ้า deliminator ของฉันคือจุดทั้งหมดนี้ จะทำคือการค้นหาผ่านสตริง และเป็นครั้งแรกที่เห็นจุด, มันก็จะกลับไปที่ตัวชี้ โทเค็นที่ผ่านมาพบว่า ในสตริงก่อนนี้ ดังนั้นมันจะไปที่นี่ และมันก็จะให้ฉัน 7.php และถ้าผมจะเรียก หนึ่งทำงานเวลามากขึ้น มันจะทำให้ฉันเป็นเพียงแค่ .php และเพื่อให้ทุกฟังก์ชั่นนี้จะทำ ถูกทำลายลงสตริงที่มีขนาดใหญ่ เข้าไปในสายที่มีขนาดเล็กขึ้นอยู่กับ ในสิ่งที่คุณกำลังมองหา และอื่น ๆ ตัวอย่างเช่นใน ฟังก์ชั่นขึ้นรูปลักษณ์ของคุณ ถ้าคุณต้องการที่จะมองสิ่งที่ ตัวอักษรบางอย่างมาเกี่ยวกับ หรือถ้าเกิดขึ้นจุดหรือส่วนขยายเกิดขึ้น ฟังก์ชั่นนี้จะเป็นประโยชน์อย่างเป็นธรรม ใช่ ไม่ต้องห่วง. นี้จะ be-- ทั้งหมดใช่อะไรขึ้น? ผู้ชม: ดังนั้นในบรรทัดแรก ถ้าเราใช้ตัวอย่างนี้ สิ่งที่เราจะใส่ลงในนั้น? ANDI เป็ง: ใช่ คุณเพียงแค่จะเรียก สตริง strtok จุลภาค delim และสตริงเท่ากับ section.7.php และแล้วคุณ delim อาจจะเท่ากับเพียงจุด ผู้ชม: ตกลง ANDI เป็ง: ใช่ เป็นแบบนั้น. ฟังก์ชั่นทั้งหมดเหล่านี้เป็นธรรม ที่คล้ายกันเมื่อเราไปถึงพวกเขา พวกเขาเพียงแค่ทำในสิ่งที่แตกต่างกันเล็กน้อย แต่พวกเขากำลังทั้งหมดไป ทำให้ชีวิตของคุณง่ายขึ้นมาก ฟังก์ชั่นที่สองของคนเช่นนี้ ซุปเปอร์ซุปเปอร์สำคัญสุด เป็น the-- ถือขึ้น โอ๊ะ ค้นหา strchr เป็นครั้งแรก occurrence-- จริงใช่ strchr เป็นฟังก์ชั่นที่ แน่นอนฉันเพียงแค่เดินไป ดังนั้นจะไม่สนใจสิ่งที่ผมพูด สำหรับฟังก์ชั่นเป็นครั้งแรก มันเรียกว่าจริง strchr ดังนั้นสิ่งที่จะเกิดขึ้นที่นี่คือถ้า คุณได้รับสตริงในถ่านคหนึ่ง มันก็จะให้ คุณสิ่งที่เป็น ใช่ ดังนั้นคิดว่ามันเป็น STR ซึ่ง เป็นสตริงและ chr เป็นถ่าน ดังนั้นสิ่งที่คุณกำลังพยายามที่จะทำคือการค้นหา สำหรับถ่านที่อยู่ในสตริง และดังนั้นจึงค้นหาแรก การเกิดขึ้นของตัวละคร คใน STR สตริง ผู้ชม: [ไม่ได้ยิน] ANDI PENG: Yup และแล้วถ้ามันไม่พบ มันก็จะกลับมาเป็นโมฆะ ดังนั้นสิ่งที่เป็นไปได้มาก ที่มีประโยชน์สำหรับคุณผู้ชายในการทำ pset ถ้าบอกว่าคุณกำลังมองหา ส่วนขยายเช่น .docx สำหรับ Word ได้ เอกสารหรือ .pdf สำหรับเอกสาร PDF, ชนิดที่คุณสามารถใช้เพื่อดู สำหรับสิ่งที่อยู่นั้น ทุกครั้งที่คุณเห็นจุดใช่มั้ย? และเพื่อให้สวยมากถ้าคุณ เรียกว่าผ่านฟังก์ชั่น ถ้ามันกลับโมฆะ แล้วคุณจะรู้ว่ามัน ไม่พบมันจุดซึ่งหมายความว่านี้ อย่างเห็นได้ชัดไม่ได้เป็นไฟล์นามสกุลที่ถูกต้อง หรือถ้ามันกลับ บางสิ่งบางอย่างแล้วคุณจะรู้ มันจะกลับมาของสิ่งที่ จริงหลังจากที่ขยาย ดังนั้นบรรดาผู้ที่มี เริ่มมองผ่านการค้นหา และแยกของฟังก์ชั่นนี้ จะเป็นประโยชน์สุด ดังนั้นเรากำลังจะเป็นจริง แสดงให้เห็นถึงการใช้นี้ ทำไมคุณไม่ลองคนเขียน ฟังก์ชั่นบูลประโยค char * s ที่ เพียงแค่ผลตอบแทนจริงถ้า s เป็น ประโยคและเท็จอย่างอื่น ดังนั้นคำแนะนำที่คุณกำลังจะ อาจจะใช้ strchr หรือคุณเพียงค้นหาใน สตริงสำหรับตัวอักษรบาง และในประโยค สิ่งที่แยกประโยค จากที่ไม่ใช่ประโยค สิ่งที่ตัวละครที่เฉพาะเจาะจง ผู้ชม: อวกาศ ANDI PENG: พื้นที่ A, ใช่มั้ย? ดังนั้นสิ่งที่เราไม่อาจจะ ต้องการที่จะทำภายในฟังก์ชั่นนี้ได้ที่นี่? ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: เรากำลังจะต้องการ strchr สตริงสำหรับการปรากฏตัวของพื้นที่ เพราะถ้ามันกลับบางสิ่งบางอย่างแล้ว เรารู้ว่านี้จะต้องเป็นประโยค นั่นหมายความว่าเราจะต้อง มีพื้นที่ว่างในสายนี้ หากมีพื้นที่ไม่มีแล้วเรารู้ว่า ว่าเดี๋ยวก่อนคิดว่ามันไม่ได้เป็นสตริง มันอาจเป็นเพียงคำนานจริงๆ ดังนั้นฉันจะให้พวกคุณสอง นาทีที่จะเขียนฟังก์ชั่นนี้ ใช่ ผู้ชม: คุณได้รับ สายนี้จากผู้ใช้? ANDI เป็ง: ใช่ ดังนั้นนี้เป็นเพียงฟังก์ชั่น ดังนั้นจินตนาการภายในฟังก์ชั่นหลักของคุณ คุณ have-- ขอไปที่นี่ ตกลง. ดังนั้นผมจึงได้เขียนโปรแกรมที่นี้ ฉันมีฟังก์ชั่นหลักของฉันที่ เราได้สร้างเพียงสองสาย คนแรกคือสวัสดีครับผมชื่อ เป็น Andi-- ชัดเจนประโยค คนที่สองของฉันเป็นเพียง Andi อย่างเห็นได้ชัดไม่ได้ประโยค และเพื่อให้ฉันทำงานทั้งของคนเหล่านั้น สายผ่านฟังก์ชั่นนี้ ฉันต้องการพวกคุณจะเขียนประโยคเย็น และฉันเก็บค่าเหล่านั้น แล้วเพียงแค่พิมพ์พวกเขาออก ดังนั้นคิดว่าผู้ใช้เป็น จะผ่านในสตริง แล้วคุณจะเป็นหลัก คิดว่ามันเป็นประโยคหรือไม่ และกลับจริงหรือเท็จตาม ถ้าพวกคุณต้องการที่จะให้ นิ้วหัวแม่มือขึ้นหรือหัวขึ้นพยักหน้าหัว ทุกคนพร้อมที่จะเริ่มต้น นี้ที่ต้องการจะดี บางทีเหมือน 30 วินาทีมากขึ้น? ทั้งหมดขวา ลองมาดูว่าคุณสามารถลอง เขียนฟังก์ชั่นนี้ ดังนั้น coding-- หลอกฉันแค่จะไป ชนิดของการเดินผ่านนี้ในขณะนี้ สวยมากเรารู้ว่า ฟังก์ชั่นที่เราจำเป็นต้องใช้ เรากำลังจะไปเรียกใช้ฟังก์ชันที่เกี่ยวกับ สตริงและการค้นหาของเราสำหรับพื้นที่ ถ้ามันกลับบางสิ่งบางอย่างเราก็ต้อง รู้ว่าอย่างเห็นได้ชัดนี้เป็นประโยค เพราะมีช่องว่าง จากนั้นเรากำลังจะกลับจริง อื่นที่เรากำลังจะกลับเท็จ ไม่มีใครต้องการที่จะให้ ฉันบรรทัดแรกของรหัส ที่เรากำลังจะเป็นจริง เพื่อใช้ในการเขียนนี้หรือไม่? ก็จริงที่ยากที่สุด บรรทัดของรหัสเป็นอย่างดี ใช่ ผู้ชม: ถ้า strtok s-- ANDI PENG: เพียงแค่ strchr ผู้ชม: [interposing VOICES] มีพื้นที่ไม่เท่ากันให้เป็นโมฆะ ANDI PENG: เย็น ตรงขวา ทุกคนเข้าใจว่าบรรทัดแรก? เรากำลังจะไปเรียก strstr, ซึ่งเป็นฟังก์ชั่นการค้นหาที่ ดัชนี S สตริงสำหรับถ่านของพื้นที่ และถ้ามันพบว่ามันก็จะไป กลับชี้ไปที่นั่นคือ ถ้ามันไม่ได้หามัน ก็จะกลับมาเป็นโมฆะ ดังนั้นถ้ามันกลับสิ่งอื่นที่ไม่ใช่ โมฆะแล้วเรารู้ว่ามันพบพื้นที่ ที่ทำให้รู้สึก? เย็น ทั้งหมดขวา ดังนั้นหากเรารู้ว่ามันพบ พื้นที่ทำในสิ่งที่เราต้องการจะทำอย่างไร? ผู้ชม: กลับจริง ANDI PENG: Yup กลับจริง แล้วใครบางคนต้องการที่จะ เสร็จสิ้นการทำงานสำหรับฉันหรือไม่ ใช่ อื่น ๆ เช่นเดียวกับที่ และพยายามรวบรวมนี้ ได้. ดังนั้นในขณะที่พวกคุณสามารถดูได้จาก เอาท์พุทจำ Booleans ใน C จะแสดงเสมอในไบนารี 1 เป็นความจริง 0 เป็นเท็จ ถ้าเราจะทำงานนี้ ฟังก์ชั่นในหนึ่งสายที่ เป็นสวัสดีชื่อของฉัน Andi-- เห็นได้ชัดว่าเป็น sentence-- ผล พิมพ์ออกมาเป็น 1 ซึ่งเป็นความจริง คนที่สองซึ่งเป็นเพียง คำที่พิมพ์ออกผล 0 ซึ่งเป็นเท็จ ทุกคนชนิดที่ชัดเจนของการเกี่ยวกับวิธีการ ฟังก์ชั่นนี้ถูกเขียน? ใช่ ผู้ชม: เราสามารถทำแทน ไม่เท่ากับไม่เท่ากับเท่ากับ 0, เพื่อที่จะเท่ากับ? ANDI PENG: เลขที่ เพราะ strchr เป็นฟังก์ชั่น ฉันจะกลับไปนี้ ดังนั้นสิ่งที่พิมพ์กลับ ฟังก์ชั่น strchr ของเราหรือไม่ ผู้ชม: โอ้, OK หรือเป็นโมฆะ ANDI เป็ง: ใช่ มันเป็น * ถ่านที่บอกฉันว่าสิ่งที่ ฟังก์ชั่นนี้จะกลับมา มันจะเป็นตัวชี้ ทั้งสองตัวชี้เป็นไปได้ ชี้ไปที่มันพบมัน หรือว่ามันจะกลับมา ตัวชี้ไปยังโมฆะ ในกรณีอย่างใดอย่างหนึ่งก็จะ ที่จะกลับตัวชี้ไปยังบางสิ่งบางอย่าง ดังนั้นถ้าคุณจะถือเอา เท่ากับเท่ากับ 0, คุณกำลังจะได้รับข้อผิดพลาดสะสม เพราะมันจะกลับมาเป็นตัวชี้ และคุณจะพยายามที่จะ เปรียบเทียบตัวชี้ไปยังจำนวนเต็ม และคอมพิวเตอร์ไม่ จะชอบว่า ใช่ว่า เย็น ทุกคนดีหรือไม่? และประการที่สองที่เรากำลังจะไป มากกว่าฟังก์ชั่นที่เรียกว่า strstr ไม่ต้องกังวลว่าคนเหล่านี้ ฟังก์ชั่นที่คุณมีความสับสน พวกเขากำลังสับสนฉัน เป็นเช่นนี้พวกคุณจะได้เห็น พวกเขาเสียงทั้งหมดสวยมากเหมือนกัน เพียงแค่เมื่อใดก็ตามที่คุณกำลังสับสน ดึงห้องสมุดสตริง และพวกคุณสามารถเรียงลำดับ ผ่านที่หนึ่งซึ่ง strstr ดังนั้นทุกสิ่งที่ทำก็คือการค้นหา สตริงสำหรับสตริงอื่น ๆ ทั้งหมด เพื่อที่ strchr ค้นหาเพียง สำหรับตัวเดียว ค้นหา strstr สำหรับสตริงทั้งหมด ดังนั้นผมจึงอยากจะมองในที่ฉันทำไม่ได้ รู้ว่าสวัสดีชื่อของฉันคือ Andi และชื่อเพื่อนที่ดีที่สุดของฉันยังเป็น Andi ถ้าผมต้องการที่จะมองหาในเรื่องนี้ ประโยคคำทั้งหมดของ Andi, เข็มของฉันจะได้รับ สิ่งที่คุณกำลังมองหา และกองหญ้าของคุณเป็นสิ่งที่ คุณกำลังมองหาใน ดังนั้นหากคุณกำลังมองหา คำเฉพาะในประโยค คำว่าเป็นไปได้ที่เข็มของคุณ และแล้วประโยคของตัวเอง เป็นไปได้ที่กองหญ้าของคุณ และดังนั้นจึงเพียงแค่ค้นหา เกิดขึ้นครั้งแรก เข็มสตริง ในกองหญ้าสตริง ก็จะส่งกลับตัวชี้ ที่จะเกิดขึ้นครั้งแรก ยกเว้นจำในกรณีนี้มันเป็น เกิดขึ้นครั้งแรกของสตริงทั้งหมด ที่คุณกำลังค้นหา หาไม่ได้เป็นเพียงตัวละคร และเพื่อให้เป็นเกือบ สิ่งเดียวกับฟังก์ชั่น เราก็ไม่ได้เพียงกับ เฉพาะเจาะจงมากขึ้นอีกนิด เพราะคุณกำลังมองหา มากกว่าเพียงแค่ตัวละครตัวหนึ่ง และการใช้งานเป็นที่แน่นอนเดียวกัน เป็นหนึ่งที่เราก็ทำ ทุกคนตกลงกับเรื่องนี้? ตกลง. หนึ่งที่เรากำลังจะไป มากกว่าเป็น strrchr ซึ่งไม่ได้เป็น สับสนกับ strstr หรือ strchr strrchr มีอาพิเศษในการมี ระวังเมื่อคุณกำลังพิมพ์ คุณอาจพบว่าตัวเองรวมทั้ง อาพิเศษหรือไม่รวมถึงอาร์ที่ แล้วการทำงานของคุณ จะได้ไม่ไปทำงาน และคุณกำลังจะได้รับสับสน ระวังว่าคุณกำลังสะกด ฟังก์ชั่นเหล่านี้ได้ ดังนั้น strrchr เป็นที่แน่นอน สิ่งเดียวกับ strchr ยกเว้นจะค้นหาไม่ใช่คนแรก การเกิดขึ้นของตัวละครที่เฉพาะเจาะจง แต่เกิดขึ้นครั้งล่าสุด ดังนั้นในแง่ที่ว่า มันเกือบจะเหมือนกัน แต่แทนที่จะย้าย ส่งต่อในสตริง คุณกำลังจะได้รับการเคลื่อนย้าย ย้อนกลับไปในสตริง สิ่งเดียวที่แน่นอน, คุณเพียงแค่ ค้นหาในลำดับที่แตกต่าง และอื่น ๆ นี้อาจจะมีซุปเปอร์ ซุปเปอร์ที่มีประโยชน์สำหรับการค้นหาของคุณ ฟังก์ชั่นเป็นครั้งแรก ฟังก์ชั่นใน pset ของคุณ ลองทำเป็นว่าเราต้องการที่จะเขียน ฟังก์ชั่นของการขยายช่องว่างที่เรา ผ่านถ่านคง * ชื่อไฟล์ เพียงสตริงชื่อไฟล์ ที่ใช้เวลาในชื่อและภาพพิมพ์ ออกนามสกุลของไฟล์ว่า ดังนั้นตัวอย่างเช่นถ้าผมจะ ผ่านในสายของ pset7.zip ที่ ก็จะพิมพ์ออกมาเพียง ขยายซึ่งเป็นซิป และนี่จะทำงานให้ เรียงลำดับใด ๆ ของส่วนขยาย, .docx สำหรับ Word หรือ .pdf สำหรับรูปแบบไฟล์ PDF หรือยื่น .html สำหรับไฟล์ HTML สวยมากเขียน ฟังก์ชั่นที่สามารถทำเช่นนั้น ฉันจริงไป สลับไปยังการ IDE มันไม่ได้มี load-- ที่เราจะไป ดังนั้นสิ่งที่ผมเคยทำที่นี่ก็คือ สร้าง * ถ่าน, สตริงแรก เรียกว่า pset7.zip ฉันจะซูมเข้า ฉันได้สร้างสายที่สอง เรียกว่า finalpaper.docx และเขียนฉันฟังก์ชั่นที่ว่าเมื่อ เรียกว่าเป็นไปได้เพียงแค่พิมพ์ออกมา นามสกุลของชื่อไฟล์ อาจจะใช้เวลาไม่กี่นาทีในการคิด เกี่ยวกับวิธีการที่คุณกำลังจะทำเช่นนี้ เล็กน้อยที่ท้าทายมากขึ้น มากกว่าหนึ่งที่ผ่านมา แต่การใช้งานที่เกือบจะ เหมือนเดิมทุกประการ. ใช่ เพื่อเขียนฟังก์ชั่นที่เรียกว่าขยาย ว่าถ้าผมให้ชื่อของไฟล์ที่ ถ้าผมจะให้คุณ pset7.zip-- ฉัน ต้องการให้คุณพิมพ์ออกมาเพียงแค่ซิป ถ้าฉันให้คุณชอบ finalpaper.docx, เพียงแค่พิมพ์ออก .docx ที่ เพียงแค่นามสกุลของไฟล์ใด นี้ที่จริงเท่านั้น ใช้เวลาสองบรรทัดของรหัส เพื่อพยายามที่จะดูว่าคุณ อาจจะสามารถทำมันได้ในการที่ ที่จริงมันเท่านั้น ใช้เวลาหนึ่งบรรทัดของรหัส แต่ทั้งสองสายน่าจะเป็นมาตรฐานมากขึ้น เราเป็นสิ่งที่อาจจะฟังก์ชั่น จะต้องการที่จะโทรได้หรือไม่ ผู้ชม: strrchr ANDI PENG: strrchr ขวา เพราะเรากำลังมองหา จากซ้ายด้านขวา ผมไม่ได้ให้พวกคุณ ตัวอย่างเช่นนี้, แต่ถ้าฉันให้คุณตัวอย่างเช่น www.apple.com และฉันแค่อยาก .com ที่มันจะเป็นตัวอย่างของการที่ คุณต้องการที่จะเรียกเช่นที่ผ่านมา ของระยะเวลาและไม่ใช่ครั้งแรกใช่มั้ย? ถ้าคุณโทร strchr มัน จะได้รับคุณ apple.com ถ้าคุณเรียกว่า strrchr มัน จะได้ให้คุณ .com และเพื่อให้ระมัดระวังเกี่ยวกับการที่ ways-- ในตัวอย่างของฉัน คุณอาจจะอาจจะมี เพียงเขียนโดยใช้ strchr, เนื่องจากมีเพียงหนึ่งจุด แต่ในกรณีอื่น ๆ ที่ไม่อาจเป็นกรณีที่ และเพื่อพยายามที่จะออกแบบ รหัสของคุณดีดังนั้น that-- ใช่? ผู้ชม: ดังนั้นใน ตัวอย่างเช่นคุณเพียงแค่กล่าวว่า เมื่อคุณไม่ strrchr มันจะ ให้คุณ .com หรือเพียงแค่มา? ANDI เป็ง: มันจะให้คุณ .com ผู้ชม: ตกลง ANDI เป็ง: ใช่ มันชี้ไปที่ที่มันพบว่ามัน ใช่ 30 วินาทีอาจจะ? ใช่ ทุกคนที่ดีหรืออาจจะเป็นเวลาที่น้อยมากขึ้น? แสดงของมือ? แสดงหัว? เย็น ทุกคนต้องการที่จะให้ฉันแรก บรรทัดของรหัสสำหรับโปรแกรมนี้? ผู้ชม: [ไม่ได้ยิน] ANDI PENG: ดังนั้นแรกของทุกคน ขออาจจะทำลายลง ดังนั้นสิ่งที่เป็นประเภทการกลับมาของ strrchr หรือไม่ กลับกันเถอะ. strrchr สิ่งที่เป็นชนิดกลับหรือไม่ ผู้ชม: Char * ANDI เป็ง: มัน * ถ่านใช่มั้ย? ซึ่งหมายความว่าคุณอาจจะ เพื่อต้องการที่จะสร้าง * ถ่านชนิดอื่น ของการจัดเก็บเมื่อใดก็ตามที่มันเป็น กลับไปใช่มั้ย? เพราะถ้าคุณเรียก strrchr ฟังก์ชั่น มันจะทำให้คุณชี้ไปยัง ที่ใดก็ตามที่พบว่าช่วงเวลาที่ผ่านมา ขวา? แต่คุณจะต้องการที่จะ การจัดเก็บที่ใดที่หนึ่งใช่มั้ย? ดังนั้นทำอย่างไรเรารหัส นี้ลงในโปรแกรมของเราหรือไม่ ผู้ชม: คุณทำให้ * ถ่าน [ไม่ได้ยิน] ANDI PENG: อ๋อ ผู้ชม: [ไม่ได้ยิน] ANDI PENG: strrchr ใช่ โอ้พลาดอามี ผู้ชม: ชื่อแฟ้ม [ไม่ได้ยิน] มันคืออะไร? โอ้มันเป็นเพียงแค่ s ANDI PENG: โอ้ก็แค่ s Yup ขอโทษ ความผิดฉันเอง. ตัวอย่างไม่ตรงกับ ผู้ชม: และแล้วจุด ANDI PENG: Yup โปรดใช้ความระมัดระวังเมื่อพวกคุณ are-- ที่นี่ให้ฉันซูมเข้า เราจะไปที่นั่น. โปรดใช้ความระมัดระวังเมื่อพวกคุณ กำลังพิมพ์โดยเฉพาะอย่างยิ่งเมื่อ คุณกำลังทำเพียงถ่าน มันเป็นเรื่องง่ายที่จะเพียงแค่บังเอิญ ทำราคาคู่เดียวมากกว่า ที่จะไม่ทำงาน คอมไพเลอร์ของคุณจะบ่น และฟังก์ชั่นของคุณคือ เพียงแค่ไม่ได้ไปทำงาน และเพื่อให้ระมัดระวังในการ คุณกำลังทำสิ่งที่ ที่มีตัวอักษรว่ามันเป็นราคาเดียว และเพื่อไม่สายนี้ รหัสทำให้ความรู้สึกที่ทุกคนหรือไม่ เรากำลังสร้างตัวชี้ * ถ่าน เพราะผลตอบแทนที่ strrchr บางสิ่งบางอย่างของตัวชี้ประเภท และเพื่อที่เรากำลังจะเรียก strchr ใน s ซึ่งเป็นสตริงไฟล์ ชื่อที่เรากำลังผ่านใน และเรากำลังมองหาที่ผ่านมา ตัวอย่างของระยะเวลาซึ่งเป็น เพียงจุดเดียวอ้างคำพูดเดียว ใช่ ผู้ชม: เมื่อเราจะใช้คำพูดสอง และเมื่อเราจะใช้คำพูดเดียว? ANDI เป็ง: ใช่ คำพูดคู่ดังนั้น ใช้เสมอเมื่อคุณ มีสตริงมากกว่าเพียงแค่หนึ่ง ดังนั้นถ้าคุณกำลังทำ strstr, ซึ่งเป็นหนึ่งในที่คุณ ค้นหาสตริงสตริงคุณ จะผ่านมันในราคาคู่ แต่เวลาใด ๆ มันเป็นเพียงแค่ ตัวเดียว คุณต้องการจะทำราคาเดียว มันเป็นสิ่งที่ดีที่จะเก็บไว้ในใจ ดังนั้นตอนนี้ที่เรามีของเรา ชี้ทำในสิ่งที่เราทำกับมันได้หรือไม่ ผมขอให้พวกคุณไป พิมพ์มันออกมาใช่มั้ย? ดังนั้น [ไม่ได้ยิน] คุณต้องการ ให้ฉันบรรทัดของรหัส? ผู้ชม: printf-- ANDI เป็ง: ใช่ ผู้ชม: --you ต้องถือเป็นสถานที่ ANDI PENG: Yup ผู้ชม: พิมพ์ผู้ถือสถานที่ ผมไม่ทราบว่าสถานที่ ถือเป็น แต่จุดไป ตกลง. ขอข้ามสำหรับตอนนี้แล้ว ผู้ชม: และแล้ว comma-- ANDI PENG: ตัวชี้ใช่มั้ย? ผู้ชม: ตัวชี้ยุบ ANDI PENG: ดังนั้นชนิดของคำถามเคล็ดลับ จะทำอย่างไรกับตัวชี้และสตริง ที่เราได้ชนิดของการพูดคุยเกี่ยวกับแล้ว ชนิดของผู้ถือสถานที่ที่เราทำ ต้องการสำหรับตัวชี้ * สำหรับถ่านหรือไม่? ผู้ชม: [ไม่ได้ยิน] ANDI เป็ง: ใช่ มันง่ายกว่าที่พวกคุณคิดว่ามันเป็น ผู้ชม: String? ANDI เป็ง: มันเป็นเพียงสตริงว่า เพราะจำได้ว่าสตริง ไม่ได้จริงๆอยู่ A * ถ่านเป็นที่แน่นอน สิ่งเดียวกันเป็นสตริง และเพื่อให้จริงๆ s นี้คือสิ่งที่ ควรจะถูกนำมาใช้ตลอด ตกลง. ลองมาดูว่าเราสามารถลองใช้นี้ ลองทำให้ขยาย เย็น พวกคุณดูว่าฉันผ่านใน psset7.zip และ finalpaper.docx ที่ และมันก็พิมพ์ออก ซิปและ .docx หรือไม่ ความรู้สึกให้? ตกลงดังนั้นผมจึงคิดว่าในรูปลักษณ์ของคุณ ฟังก์ชั่นใน pset ของคุณ จะถูกถามว่า สตริงมีตอนจบบางอย่าง คุณจะต้องให้รหัสข้อผิดพลาดบางอย่าง ดังนั้นนี้จะเป็นที่น่ากลัวสวย เพราะถ้าคุณสามารถคิด สิ่งที่ขยายคือ แล้วคุณสามารถเปรียบเทียบว่า ขยายเพื่อดูว่ามันตรง ที่มีนามสกุลบางอย่าง และจากนั้นคุณสามารถกลับ ข้อผิดพลาดใช่มั้ย? ใช่ ผู้ชม: ดังนั้นเราทำไม่ได้ ต้องเพิ่ม 1 หรืออะไร? ตัวชี้จะไป the-- ANDI PENG: Nope ผู้ชม: --point หลังจากที่มัน ANDI เป็ง: ใช่ มันชี้ให้ตรงกับ ที่เกิดขึ้นได้ ดังนั้นตัวอย่างเช่นที่นี่เรากำลัง ค้นหาสำหรับรอบระยะเวลา ดังนั้นมันจะกลับมา ตัวชี้กับช่วงเวลา และจากนั้นก็จะพิมพ์ จากเริ่มต้นที่ระยะเวลา ดังนั้นคุณจึงไม่จำเป็นที่จะต้องเพิ่ม 1 แม้ว่าจะเป็นทั้งหมดปรับให้ถ้า คุณไม่แน่ใจเคยไปเพียงแค่ชนิด การทดสอบด้วยตัวคุณเอง สร้างโปรแกรมตัวอย่าง ทดสอบออกตัวเองและ ดูว่ามันจะเป็นเรื่องการพิมพ์ ที่ยังไม่ได้เป็นวิธีที่ดีที่จะทำมัน เย็น และที่สวยมากทุก ฉันมีสำหรับผู้ชายคุณในวันนี้ เราไม่มากของสิ่ง pset วันนี้ ดังนั้นเมื่อมีข้อสงสัยเช่น ผมบอกว่ามักจะมองขึ้น ห้องสมุดสตริงสำหรับ pset นี้ มีเป็นไปได้มาก ฟังก์ชั่นในการมีที่อาจเป็นประโยชน์ บางคนอาจจะไม่เป็นประโยชน์ ผมไม่ทราบจริงๆ เวดผ่านมันมี ทั้งกลุ่มของพวกเขา strstr, strchr, strrchr มี สุดสุดที่เป็นประโยชน์เช่นเดียวกับ strcpys และ strcasecmps ที่เราได้ใช้อยู่แล้ว มันมากเพียง messing รอบด้วย เงื่อนไขการกำหนดว่าพวกเขากำลังเท่ากัน สิ่งที่ได้รับจากสายและ ความสามารถในการเปิดไฟล์ได้อย่างถูกต้อง มันมากของไฟล์ I / O pset จริงๆไม่เลว คุณกำลังจะใช้ มองไปที่มันดาวน์โหลดได้ และดูทั้งกลุ่มของรหัส ไม่ต้องกังวลรหัสคุณ จริงเขียนไม่เลวเลย ถ้าใครมีปัญหาเกี่ยวกับพวกเขา เซิร์ฟเวอร์มาเห็นฉันหลังจากที่ส่วน ขอโทษอีกครั้งไม่ได้ นำลูกอมฮาโลวีน ผมไม่ทราบว่าสิ่งที่ผิดกับฉัน แต่เราจะมีคู่ ลูกอมในครั้งต่อไป และโชคดีใน pset ของคุณในสัปดาห์นี้ ได้.