1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB สลิง: สวัสดีครับผมร็อบ 3 00:00:13,750 --> 00:00:17,360 และเมื่ออยู่ในกรุงโรมให้โปรแกรม เป็นโรมทำ 4 00:00:17,360 --> 00:00:22,280 ดังนั้นสิ่งแรกที่เราต้องทำคือการตรวจสอบ เพื่อให้แน่ใจว่าผู้ใช้ป้อนจริง 5 00:00:22,280 --> 00:00:26,670 ตัวเลขที่เราต้องการที่จะหมุนแต่ละ โดยตัวละครที่บรรทัดคำสั่ง 6 00:00:26,670 --> 00:00:27,740 >> ดังนั้นเราจะตรวจสอบ 7 00:00:27,740 --> 00:00:30,180 เป็น argc เท่ากับ 2? 8 00:00:30,180 --> 00:00:34,190 ถ้ามันไม่ได้หมายความว่าผู้ใช้อย่างใดอย่างหนึ่ง ไม่ได้ใส่หมายเลขที่ 9 00:00:34,190 --> 00:00:37,770 บรรทัดคำสั่งหรือพวกเขาเข้ามามากเกินไป สิ่งที่บรรทัดคำสั่งในการที่ 10 00:00:37,770 --> 00:00:40,560 กรณีที่เราไม่ทราบว่าจะทำอย่างไร กับส่วนที่เหลือของสิ่งที่ 11 00:00:40,560 --> 00:00:45,750 ดังนั้นตราบใดที่ argc สองเราสามารถ ดำเนินการต่อกับส่วนที่เหลือของโปรแกรม 12 00:00:45,750 --> 00:00:49,610 >> ตอนนี้จำ argv ที่ 1 เสมอสตริง 13 00:00:49,610 --> 00:00:52,490 แต่เราต้องการที่จะรักษามันเป็นจำนวนเต็ม 14 00:00:52,490 --> 00:00:57,550 ดังนั้นเราจึงใช้ฟังก์ชัน atoi ที่ spec พีชุดดังกล่าวในการแปลง 15 00:00:57,550 --> 00:01:02,330 สตริง argv 1 ถึงจำนวนเต็ม และเราเก็บในที่สำคัญ 16 00:01:02,330 --> 00:01:06,050 เราต้องการที่จะให้แน่ใจว่าจำนวนเต็ม ที่ได้รับการป้อนไม่เชิงลบ 17 00:01:06,050 --> 00:01:09,490 และถ้ามันเป็นที่เราต้องการในการพิมพ์ที่ ผู้ใช้ที่พวกเขาไม่ได้รับอนุญาต 18 00:01:09,490 --> 00:01:11,980 จะทำอย่างนั้นและการกลับมา 19 00:01:11,980 --> 00:01:15,100 >> ดังนั้นตอนนี้เรามีที่ถูกต้อง จำนวนจากผู้ใช้ 20 00:01:15,100 --> 00:01:19,780 แต่เราต้องการที่จะได้รับสายจาก ผู้ใช้ที่เราต้องการในการเข้ารหัส 21 00:01:19,780 --> 00:01:25,340 ดังนั้นเราจึงใช้ในการทำในขณะที่ห่วงและได้รับใช้ สตริงที่จะได้รับสายนี้จาก 22 00:01:25,340 --> 00:01:29,190 ผู้ใช้และยังคงได้รับสาย จนกว่าพวกเขาจะจริง 23 00:01:29,190 --> 00:01:31,270 ใส่ชุดตัวอักษรที่ถูกต้อง 24 00:01:31,270 --> 00:01:34,400 >> เมื่อเรามีสายที่เรา สามารถที่จะเข้ารหัส 25 00:01:34,400 --> 00:01:38,120 ดังนั้นวงนี้จะทำ การเข้ารหัสที่ 26 00:01:38,120 --> 00:01:43,250 ขอให้สังเกตว่าเรากำลัง iterating จากฉัน เท่ากับ 0 t ตลอดทางขึ้นไปเท่ากับฉัน 27 00:01:43,250 --> 00:01:47,790 n โดยที่ n หมายถึงความยาวของ ข้อความที่ข้อความเป็นของเรา 28 00:01:47,790 --> 00:01:50,260 สตริงที่ผู้ใช้ป้อน 29 00:01:50,260 --> 00:01:54,330 >> ดังนั้นเราวนไปทั่ว ตัวอักษรในสตริง 30 00:01:54,330 --> 00:01:59,740 และถ้าตัวอักษรตัวพิมพ์ใหญ่เป็นแล้ว เรากำลังจะเปลี่ยนมันใช้นี้ 31 00:01:59,740 --> 00:02:01,860 สูตรที่เราจะ จะได้รับในครั้งที่สอง 32 00:02:01,860 --> 00:02:05,260 และถ้ามันเป็นตัวพิมพ์เล็กแล้ว เราจะเปลี่ยนมันใช้นี้เป็น 33 00:02:05,260 --> 00:02:07,290 สูตรคล้ายกันมาก 34 00:02:07,290 --> 00:02:10,850 และถ้ามันเป็นตัวพิมพ์ใหญ่หรือไม่ ตัวพิมพ์เล็กจดหมาย - ตัวอย่างเช่นมัน 35 00:02:10,850 --> 00:02:15,370 อาจจะเป็นตัวเลขหรือสัญลักษณ์ - แล้วเรา จะไม่ได้ไปทำอะไรกับมัน 36 00:02:15,370 --> 00:02:18,220 >> ดังนั้นสิ่งที่เป็นสูตรเหล่านี้หรือไม่ 37 00:02:18,220 --> 00:02:22,090 ด้วยวิธีการที่เราจะเปลี่ยนอักขระ? 38 00:02:22,090 --> 00:02:27,250 เราต้องการที่จะรักษาตัว เป็นจำนวน 0 39 00:02:27,250 --> 00:02:30,710 และเราต้องการที่จะรักษาตัว B เป็นจำนวน 1 และอื่น ๆ 40 00:02:30,710 --> 00:02:35,170 มันเป็นตัวละครที่ 0 และเป็นครั้งแรก ของตัวอักษรและอื่น ๆ 41 00:02:35,170 --> 00:02:42,900 >> ดังนั้นที่นี่ฉันลบข้อความที่ควร เพื่อให้เรามีสถานที่ที่เป็นตัวเลขของ 42 00:02:42,900 --> 00:02:44,400 ตัวอักษรในตัวอักษร 43 00:02:44,400 --> 00:02:48,080 ดังนั้นถ้าฉันเป็นข้อความนี้ เป็นไปเพื่อให้เรามี 0 44 00:02:48,080 --> 00:02:52,880 ตอนนี้เราต้องการที่จะเพิ่มที่ ตัวเลขที่ผู้ใช้ต้องการ 45 00:02:52,880 --> 00:02:54,840 หมุนตัวโดย 46 00:02:54,840 --> 00:03:03,280 ดังนั้นถ้าพวกเขาเข้ามา 3 แล้วถ้าข้อความ ผมนี้จะทำให้เรามี 0 และบวก 47 00:03:03,280 --> 00:03:05,400 ที่สำคัญจะทำให้เรามี 3 48 00:03:05,400 --> 00:03:09,450 >> ดังนั้นตอนนี้เรากำลังพิจารณา สถานที่ที่สามในตัวอักษร 49 00:03:09,450 --> 00:03:12,810 เราจะเห็นว่าทำไมเราต้องพอควร โดยตัวอักษรที่สองในจาน 50 00:03:12,810 --> 00:03:18,700 แต่ในที่สุดเราต้องการที่จะเพิ่มใน สิ้นสุดอีกครั้งที่จะเปลี่ยนเรากลับเข้ามาใน 51 00:03:18,700 --> 00:03:22,020 ค่า ASCII ของตัวละครเหล่านี้ แทนสถานที่ที่เป็นตัวเลขใน 52 00:03:22,020 --> 00:03:24,260 ตัวอักษรของตัวละครเหล่านี้ 53 00:03:24,260 --> 00:03:26,580 >> ดังนั้นทำไมเราพอควรโดยตัวอักษร NUM? 54 00:03:26,580 --> 00:03:29,960 โปรดจำไว้ว่าเราต้องการที่จะห่อรอบ จากปลายของตัวอักษรที่ 55 00:03:29,960 --> 00:03:31,470 จุดเริ่มต้นของตัวอักษร 56 00:03:31,470 --> 00:03:38,530 ดังนั้น Z หากผู้ใช้เข้ามาแล้ว ลบออกจากที่เป็นไป 57 00:03:38,530 --> 00:03:40,520 ให้เรา 25 58 00:03:40,520 --> 00:03:44,800 และหากที่สำคัญเป็น 3 แล้ว เรากำลังจะมี 28 59 00:03:44,800 --> 00:03:53,000 แต่ Z ควรห่อรอบเอบีซีดังนั้น 28 ตัวอักษร NUM mod ซึ่งเป็นกัญชาที่กำหนดไว้ 60 00:03:53,000 --> 00:04:01,890 เป็น 26 คาดว่าจะเป็นไปเพื่อให้ เรา 2, C คือจดหมายฉบับที่สองของ 61 00:04:01,890 --> 00:04:05,880 ตัวอักษรถ้าคุณจำได้ว่าเป็น 0 จดหมายของตัวอักษร 62 00:04:05,880 --> 00:04:09,210 >> เพื่อที่ว่าทำไมเราต้อง mod โดยตัวอักษร NUM 63 00:04:09,210 --> 00:04:13,540 ตอนนี้เราต้องทำสิ่งที่ถูกต้องเหมือนกัน สำหรับตัวอักษรตัวพิมพ์เล็กยกเว้น 64 00:04:13,540 --> 00:04:17,240 จำได้ว่าเมื่อเราจัดการกับ อักษรตัวพิมพ์เล็กจะมีที่แตกต่างกัน 65 00:04:17,240 --> 00:04:18,579 ค่า ASCII 66 00:04:18,579 --> 00:04:24,550 และเพื่อให้เราต้องลบและเพิ่มใน ที่จะเปลี่ยนมันลงมาจากตัวพิมพ์เล็ก 67 00:04:24,550 --> 00:04:30,020 ค่า ASCII แล้วกลับไป เดิมค่า ASCII ตัวพิมพ์เล็ก 68 00:04:30,020 --> 00:04:33,140 >> และสุดท้ายที่จะให้เรา ข้อความที่เข้ารหัสลับของเรา 69 00:04:33,140 --> 00:04:37,780 และในท้ายที่สุดเราก็พิมพ์ออกมา ข้อความที่และที่มัน 70 00:04:37,780 --> 00:04:39,875 ชื่อของฉันคือร็อบและเป็นซีซาร์ 71 00:04:39,875 --> 00:04:49,856