1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID เจลัน: สมมติว่าฉันต้องการ จะใช้โปรแกรมที่แจ้งให้ 3 00:00:03,190 --> 00:00:06,650 ผู้ใช้สตริงแล้วดำเนิน จะใช้ประโยชน์จากข้อมูลของพวกเขา 4 00:00:06,650 --> 00:00:09,790 แปลงอักษรตัวพิมพ์เล็กใด ๆ ว่าพวกเขาจะเป็นตัวพิมพ์ใหญ่พิมพ์ได้ 5 00:00:09,790 --> 00:00:11,770 ดีขอไปข้างหน้าและ ใช้โปรแกรมที่ 6 00:00:11,770 --> 00:00:18,760 >> Let 's แรกรวม cs50.h ตาม โดยรวม stdio.h 7 00:00:18,760 --> 00:00:23,990 และเพื่อให้เราสามารถใช้ strlen, ให้รวมถึงสตริง 8 00:00:23,990 --> 00:00:29,860 >> ขอประกาศต่อไปหลักเป็นโมฆะหลักเป็น int และตอนนี้ขอให้ดำเนินการต่อไป 9 00:00:29,860 --> 00:00:31,600 ของผู้ใช้สำหรับสตริง 10 00:00:31,600 --> 00:00:34,840 printf ขอให้พวกเขา สำหรับใส่บาง 11 00:00:34,840 --> 00:00:36,460 ตอนนี้ขอประกาศสตริง - 12 00:00:36,460 --> 00:00:37,630 เราจะเรียกมัน - 13 00:00:37,630 --> 00:00:44,010 และจัดเก็บอยู่ในนั้นเป็นผลมาจากการเรียก GetString งานห้องสมุด CS50 14 00:00:44,010 --> 00:00:48,850 >> ตอนนี้ขอให้ดำเนินการต่อไปย้ำมากกว่ากัน ตัวละครใน s พะวง 15 00:00:48,850 --> 00:00:50,650 อักษรตัวพิมพ์เล็กใด ๆ ที่เราเห็น 16 00:00:50,650 --> 00:00:53,630 สำหรับ int, ฉันได้รับ 0 17 00:00:53,630 --> 00:00:58,780 Let 's ยังประกาศ n เป็นเท่ากับ ความยาวสตริงของ s เพื่อให้เราสามารถ 18 00:00:58,780 --> 00:01:03,590 ย้ำจากฉันจนถึง n, ความยาวของ s และในแต่ละ 19 00:01:03,590 --> 00:01:05,760 เพิ่มขึ้นซ้ำฉัน 20 00:01:05,760 --> 00:01:09,970 >> แล้วด้านในของวงนี้ขอ ตรวจสอบครั้งแรกเป็นจดหมายปัจจุบัน - 21 00:01:09,970 --> 00:01:12,270 จดหมาย i th-s ของดังนั้นการพูด - 22 00:01:12,270 --> 00:01:14,170 อักษรตัวพิมพ์เล็ก 23 00:01:14,170 --> 00:01:23,090 ถ้าฉัน s วงเล็บมีค่ามากกว่าหรือเท่ากับ เป็นตัวพิมพ์เล็กและก็น้อย 24 00:01:23,090 --> 00:01:26,900 กว่าหรือเท่ากับตัวพิมพ์เล็ก z - 25 00:01:26,900 --> 00:01:30,860 ตอนนี้ถ้าเราต้องการที่จะแปลงตัวพิมพ์เล็ก ตัวอักษรที่เป็นตัวพิมพ์ใหญ่, จำแรกที่ 26 00:01:30,860 --> 00:01:35,810 ใน ASCII ตัวพิมพ์เล็กเป็น 97 และตัวพิมพ์ใหญ่ 65 27 00:01:35,810 --> 00:01:41,020 ในขณะที่ตัวพิมพ์เล็กข 98, และ B เป็นตัวพิมพ์ใหญ่ 66 28 00:01:41,020 --> 00:01:44,180 >> หากเรายังคงมองไปที่รูปแบบที่ เราจะเห็นว่าตัวพิมพ์เล็ก 29 00:01:44,180 --> 00:01:49,240 ตัวอักษรอยู่เสมอ 32 ค่าที่สูงกว่า กว่าตัวอักษรพิมพ์ใหญ่ 30 00:01:49,240 --> 00:01:53,490 ดังนั้นหากเราต้องการที่จะแปลงจากตัวพิมพ์เล็ก เป็นตัวพิมพ์ใหญ่ก็ควร 31 00:01:53,490 --> 00:01:57,210 พอเพียงจริงๆลบ 32 จากการป้อนข้อมูลของผู้ใช้ 32 00:01:57,210 --> 00:02:01,330 หรือมากกว่าโดยทั่วไปเพียงแค่ลบที่ ความแตกต่างระหว่างตัวพิมพ์เล็กและ 33 00:02:01,330 --> 00:02:02,310 ทุนเอ 34 00:02:02,310 --> 00:02:03,410 >> วิธีการแสดงที่ 35 00:02:03,410 --> 00:02:04,640 ดีขอทำในรหัส 36 00:02:04,640 --> 00:02:09,960 printf, อ้างนำมาอ้าง "c%" เพื่อพิมพ์ ตัวละครในปัจจุบันตามด้วย 37 00:02:09,960 --> 00:02:18,500 การพิมพ์สิ่งที่อยู่ในวงเล็บ s i ลบ ผลของการทำพิมพ์เล็ก 38 00:02:18,500 --> 00:02:22,660 ลบเครื่องหมายอัฒภาคเป็นตัวพิมพ์ใหญ่ 39 00:02:22,660 --> 00:02:27,010 ในคำอื่น ๆ สอดนี้ การแสดงออกน้อยลบใหญ่เป็น 40 00:02:27,010 --> 00:02:29,360 จะกลับไปหาเราได้ที่ สิ้นสุดวันที่ 32 41 00:02:29,360 --> 00:02:31,230 แต่ฉันไม่ต้องจำ ว่ามันเป็น 32 42 00:02:31,230 --> 00:02:34,150 ฉันสามารถช่วยให้เครื่องคอมพิวเตอร์ที่จะคิดออก สิ่งที่แตกต่างระหว่างตัวพิมพ์เล็ก 43 00:02:34,150 --> 00:02:35,990 และเงินทุนเป็น 44 00:02:35,990 --> 00:02:39,610 >> ในขณะเดียวกันเมื่อฉันทราบความแตกต่างที่ ฉันสามารถลบออกจาก s 45 00:02:39,610 --> 00:02:43,710 วงเล็บฉันซึ่งจะใช้เวลาในสิ่งที่ สันนิษฐานว่าอักษรตัวพิมพ์เล็กไป 46 00:02:43,710 --> 00:02:48,100 ค่าที่ต่ำกว่าคือค่าที่แผนที่ ลงบนตัวพิมพ์ใหญ่เทียบเท่า 47 00:02:48,100 --> 00:02:51,240 ตอนนี้ขอบันทึกรวบรวม และเรียกใช้โปรแกรมนี้ 48 00:02:51,240 --> 00:02:57,760 ให้ใช้ประโยชน์จากจุดเฉือนทุน 49 00:02:57,760 --> 00:03:01,290 และใส่ของฉันจะเป็นสวัสดี 50 00:03:01,290 --> 00:03:02,920 และมีเรามีสวัสดี 51 00:03:02,920 --> 00:03:05,570 >> ตอนนี้ให้ฉันเป็นที่ยอมรับเป็น บิตน่าเกลียดเพราะเราได้ 52 00:03:05,570 --> 00:03:07,810 ละเว้นหนึ่งบิตของการพิมพ์ 53 00:03:07,810 --> 00:03:09,370 และให้กลับไปเพิ่มที่ 54 00:03:09,370 --> 00:03:12,890 ที่ด้านล่างสุดของโปรแกรมนี้ ฉันมากเพียงและส่วนใหญ่เป็น 55 00:03:12,890 --> 00:03:18,440 วัตถุประสงค์ด้านความงามจ​​ะเพิ่ม printf, อ้างเครื่องหมาย n นำมาอ้าง 56 00:03:18,440 --> 00:03:22,330 ลองบันทึกแฟ้มนี้ คอมไพล์, วิ่ง 57 00:03:22,330 --> 00:03:28,090 >> ให้ใช้ประโยชน์จากจุดเฉือนประโยชน์ 58 00:03:28,090 --> 00:03:32,540 อีกครั้งสำหรับใส่ฉันจะให้ "สวัสดี" ในทุกกรณีที่ต่ำกว่าและตอนนี้กด Enter, 59 00:03:32,540 --> 00:03:34,550 และ "สวัสดี" พิมพ์มากขึ้นอย่างหมดจด 60 00:03:34,550 --> 00:03:36,432