ROB: สวัสดีครับผมร็อบและให้ถอดรหัส โปรแกรม Vigenere ดังนั้นสิ่งแรกที่เราต้องทำคือการให้ แน่ใจว่าผู้ใช้ป้อนสิ่งที่เราคาดหวัง พวกเขาไปที่บรรทัดคำสั่ง ดังนั้นถ้า argc ไม่ได้เป็น 2 นั่นหมายความว่าอย่างใดอย่างหนึ่ง ผู้ใช้ไม่ได้ป้อนสตริงเรา ต้องการที่จะใช้เป็นเข้ารหัสของเรา สตริงหรือพวกเขา ป้อนสิ่งที่มากเกินไป และเราไม่ทราบว่าจะทำอย่างไร กับสิ่งอื่น ๆ เหล่านั้น ดังนั้นเราจึงบอกพวกเขาสิ่งที่พวกเขา ควรจะได้เข้ามา และเรากลับ ตอนนี้สมมติว่า argc คือ 2, ที่เราสามารถทำได้ ดำเนินการต่อกับส่วนที่เหลือของโปรแกรม เรานามแฝงชื่อ argv [1] เป็นตัวแปรหลัก เพื่อที่เราจะได้ไม่ต้อง ใช้ชื่อ argv [1] ตลอดเวลาที่เหลือของโปรแกรม และบางทีเราจะลืมสิ่งที่ นั่นหมายความว่าและอื่น ๆ คำหลักที่เป็นชื่อที่ดีกว่ามาก ทันทีและเราจะคว้าความยาว ของคำหลักของเราที่นี่ ตกลงดังนั้นตอนนี้เราต้องการที่จะตรวจสอบว่า คำหลักของเราเป็นจริงที่ถูกต้อง คำหลักที่เราใช้ในการเข้ารหัสสตริง ก็ควรจะเป็นตัวอักษร ตัวอักษร ถ้าผู้ใช้ป้อนตัวอักษรที่ไม่- ตัวละครที่เราควรจะพูดคำหลัก ต้องมีเพียงผ่าน Z และการกลับมาแล้ว ดังนั้นสำหรับการคำนวณซ้ำวนไปทั่ว ตัวอักษรของคำหลักของเราในการตรวจสอบ ว่าหากไม่ได้เป็นตัวอักษรแล้ว เราต้องพิมพ์คำเตือนว่า ตอนนี้เมื่อเราได้รับมาถึงจุดนี้เรารู้ว่า ที่สตริงจะต้องถูกต้อง คำหลักที่จะต้องถูกต้อง และตอนนี้เราต้องการที่จะได้รับข้อความจาก ผู้ใช้ที่พวกเขาต้องการให้เรา เข้ารหัสด้วยวลีที่สำคัญที่ เพื่อที่จะได้รับข้อความที่เรามี ทำในขณะที่วงที่จะ อย่างต่อเนื่องได้รับสายจากผู้ใช้ จนกว่าพวกเขาจะใส่ชุดตัวอักษรที่ถูกต้อง อย่างต่อเนื่องที่เราเห็นที่นี่ตัวแปรนี้ int nun_letters_seen เราจะเห็นว่าทำไมเราต้อง ว่าในครั้งที่สอง แต่สำหรับวงนี้จะไปย้ำ จาก i = 0 ตลอดทางขึ้นไปยังฉัน เท่ากับ n ซึ่งหมายความว่าเรากำลัง iterating กว่าเป็นไปได้ทั้งหมด ตัวอักษรในข้อความของเรา เพราะเราต้องการที่จะเข้ารหัสทั้งหมดของ ตัวอักษรในข้อความของเรา เพื่อแจ้งให้ทราบที่เราทำถ้า (isalphamessage [I] เพราะเราไม่ต้องการที่จะเข้ารหัส ตัวละครที่ไม่ได้เรียงตามตัวอักษร หากมีสัญลักษณ์ช่องว่าง หรือตัวเลขที่เราทำไม่ได้ ต้องการเข้ารหัสที่ ตอนนี้สมมติว่ามันเป็นตัวอักษร ครั้งแรกที่เราต้องการที่จะคิดออกสิ่งที่เรา จริงต้องการการเข้ารหัส ข้อความโดยใช้ ดังนั้นสิ่งที่ฉันหมายความโดยที่? สมมติว่าวลีที่สำคัญ ผู้ใช้ป้อนเป็น abc นั่นคือสิ่งที่เรากำลังใช้ในการเข้ารหัส ตอนนี้อย่างไร้เดียงสาที่เราคิดว่านั่นหมายความว่า เราต้องการที่จะเข้ารหัสตัวอักษรตัวแรก ข้อความของเราโดย 0 หมายถึงตั้งแต่ หมุนตัวโดย 0 เราต้องการที่จะเข้ารหัสอักขระตัวที่สอง 1 ตัวที่สามด้วย 2 ตัวละครที่สี่โดย 0 ห้า โดยที่ 1 ที่หกโดย 2 และอื่น ๆ แต่จำไว้ว่าเราต้องการที่จะข้าม ช่องว่างและสัญลักษณ์และตัวเลข ซึ่งหมายความว่าหากผู้ใช้เข้ามา hello โลกเป็นข้อความ ว่าพวกเขาต้องการที่จะเข้ารหัสแล้ว เราต้องการที่จะเข้ารหัสชั่วโมงโดย 0 สอดคล้องกับการส่งอีเมล์โดยที่ 1 ลิตรโดย 2 ลิตรโดย 0, o 1 เราต้องการที่จะข้ามพื้นที่ที่มีการเข้ารหัส กว้าง 2, o โดย 0, 1, 2, 0 เพื่อแจ้งให้ทราบว่าเราไม่ได้ข้าม พื้นที่แล้วเราจะได้รับการเข้ารหัส กว้างโดย 0 และจบลงด้วย สตริงที่ไม่ถูกต้อง ตกลงนี้คือสิ่งที่เราต้องมีตัวแปร num_letters_seen เพื่อ ถ้าเราเพียงแค่จะใช้ในการเข้ารหัส วิธีนี้ที่ไม่ได้ข้าม สัญลักษณ์ช่องว่างและตัวเลขแล้วเรา ก็สามารถใช้ตัวแปร i เป็นสิ่งที่ ดัชนีลงไปในวลีที่สำคัญของเราด้วย เราจำเป็นต้องใช้เพื่อให้ num_letters_seen ติดตามสถานที่จริงใน วลีที่สำคัญที่เราต้องการทำดัชนี ดังนั้นที่นี่หากคำหลักที่เรามีถ้า num_letter_seen keyword_length mod ดังนั้น ทำไมเราต้องพอควร โดยความยาวของคำหลัก? ดีโลก hello เป็นตัวอย่างที่ดี หากคำหลักเป็น abc แล้วเราต้อง ในการเข้ารหัสอย่างต่อเนื่องโดยจากนั้นข แล้วคแล้วห่อกลับไปรอบ ๆ , ข, ค,, B, C ดังนั้นเราจึงจำเป็นในการพอควรตามความยาวของคำหลัก เพื่อที่จะตัดกลับไปรอบ ๆ ดังนั้นถ้านี้เป็นอักษรตัวพิมพ์ใหญ่, แล้วเราต้องการที่จะเข้ารหัสโดย ตำแหน่งของตัวอักษรในตัวอักษรที่ ที่เราได้รับโดยเพียงแค่ ลบออกทุนเอและ ในทำนองเดียวกันสำหรับตัวอักษรตัวพิมพ์เล็กเรา จะได้รับที่สำคัญที่เราต้องการด้วย ลบออกตัวพิมพ์เล็ก ดังนั้นไม่ว่าจะเป็นตัวอักษร ในวลีที่สำคัญเป็นเมืองหลวงหรือ อักษรตัวพิมพ์เล็กเรากำลังจะ เข้ารหัสด้วยจำนวนเดียวกัน ตอนนี้เรามีหลักของเราเราดูที่นี่ ว่าถ้าข้อความที่ฉันเป็นตัวพิมพ์ใหญ่ ตัวละครแล้วเราต้องการที่จะคำนวณ ตำแหน่งในตัวอักษรที่ ตัวละครเพิ่มที่สำคัญของเราไปห่อกลับ รอบเพื่อที่ว่าถ้าเราเดินผ่านมา ซีเรากลับไป, ข, คไปและอื่น ๆ แล้วในที่สุดกลับเพิ่มทุน A. ดังนั้น เราเปลี่ยนกลับเข้ามา [? ascii?] ช่วงของตัวละครเหล่านี้แทน ตำแหน่งตัวเลขในตัวอักษร ของตัวละครเหล่านี้ และเราทำในสิ่งที่เหมือนกันสำหรับ ตัวอักษรกรณีที่ต่ำกว่า ยกเว้นเราต้องการที่จะลบออกตัวพิมพ์เล็ก และเพิ่มกลับไปใน สิ้นสุดพิมพ์เล็ก ขอให้สังเกต num_letter_seen ที่เป็นเพียง เพิ่มขึ้นถ้าข้อความผม ตามตัวอักษร นี่คือวิธีการที่เราข้ามช่องว่างสัญลักษณ์และ ตัวเลขในวลีที่สำคัญของเราตั้งแต่ num_letter_seen คือสิ่งที่เรากำลังใช้ ดัชนีเป็นคำหลักของเรา ในที่สุดในที่สุดตอนนี้ข้อความที่ ฉันได้รับการเข้ารหัสเรา พิมพ์ข้อความฉัน และที่มัน ชื่อของฉันคือร็อบ และนี่คือ Vigenere [เล่นดนตรี]