ROB Bowden: Hi, saya Rob. Dan apabila di Rom, biarkan program ini sebagai orang-orang Rom lakukan. Jadi, perkara pertama yang perlu kita lakukan adalah cek memastikan pengguna sebenarnya memasuki nombor yang kita mahu berputar setiap watak oleh pada baris arahan. Jadi, kita lihat. Adalah argc sama dengan 2? Jika tidak, itu bermakna pengguna sama ada tidak memasukkan nombor yang di baris arahan atau mereka masuk terlalu banyak perkara pada baris arahan, di mana kes kita tidak tahu apa yang perlu dilakukan dengan seluruh perkara. Jadi, selagi argc adalah dua, kita boleh terus dengan seluruh program ini. Sekarang, ingat bahawa argv 1 sentiasa rentetan. Tetapi kita mahu merawat ia sebagai integer. Oleh itu, kami menggunakan fungsi atoi yang itulah p disebut set spec untuk menukar tali argv 1 untuk integer, dan kami menyimpan bahawa dalam utama. Kami ingin memastikan bahawa integer yang telah dimasukkan bukan negatif. Dan jika ia adalah, kita ingin mencetak bahawa untuk pengguna bahawa mereka tidak dibenarkan untuk melakukannya, dan kembali. Jadi, kita mempunyai yang sah nombor dari pengguna. Tetapi kita perlu untuk mendapatkan rentetan dari pengguna yang kami mahu menyulitkan. Oleh itu, kita telah lakukan-manakala gelung dan menggunakan mendapatkan tali untuk mendapatkan tali ini dari pengguna, dan terus mendapatkan tali sehingga mereka benar-benar memasukkan string yang sah. Apabila kita mempunyai tali itu, kami boleh pergi untuk menyulitkan ia. Jadi, ini bagi gelung adalah melakukan penyulitan itu. Perhatikan bahawa kita iterating dari i sama dengan 0 t semua jalan sehingga i setaraf n, di mana n ditakrifkan sebagai panjang mesej kami, di mana mesej yang tali yang pengguna yang dimasukkan. Jadi kita iterating ke atas semua watak-watak dalam string. Dan jika watak adalah huruf besar, maka kita akan beralih dengan menggunakan ini formula, yang kita akan mendapatkan dalam satu saat. Dan jika ia huruf kecil, maka kami akan beralih dengan menggunakan ini formula yang sama. Dan jika ia tidak dalam huruf besar ataupun huruf kecil - sebagai contoh, ia boleh menjadi nombor atau simbol - maka kita tidak akan berbuat apa-apa kepadanya. Jadi, apakah formula ini? Nah, bagaimana kita beralih watak A? Kami mahu merawat watak Satu nombor 0. Dan kita mahu merawat watak B sebagai nombor 1, dan sebagainya. Ia sifar dan pertama watak-watak abjad dan sebagainya. Jadi di sini, mesej i tolak A sepatutnya untuk memberi kita tempat yang bernombor daripada surat dalam abjad. Jadi, jika mesej i ialah A, ini akan memberi kita 0. Sekarang, kita mahu menambah bahawa bilangan pengguna yang mahu berputar surat oleh. Jadi, jika mereka masuk 3, maka jika mesej i adalah A, ini akan memberi kita 0 dan ditambah utama akan memberikan kita 3. Jadi sekarang, kita sedang mempertimbangkan tempat ketiga dalam abjad. Kami akan melihat mengapa kita perlu arena oleh surat num dalam satu saat. Tetapi akhirnya, kita mahu menambah kepada berakhir A sekali lagi untuk beralih kita kembali ke dalam Nilai ASCII bagi aksara ini dan bukan satu tempat yang berangka dalam abjad watak-watak ini. Jadi, mengapa kita arena oleh surat num? Ingatlah bahawa kita mahu untuk membalut di sekitar dari akhir abjad itu kepada bermula abjad. Jadi, jika pengguna telah memasuki Z, maka menolak A dari yang akan memberikan kita 25. Dan jika kunci adalah 3, maka kita akan mempunyai 28. Tetapi Z perlu membalut sekitar untuk ABC, jadi 28 surat num arena, yang hash ditakrifkan sebagai 26 yang dijangka, yang akan memberi kita 2, di mana C adalah huruf kedua abjad, jika anda ingat bahawa adalah surat sifar yang abjad. Jadi itulah sebabnya kita perlu arena oleh surat num. Sekarang, kita perlu melakukan perkara yang sama tepat untuk huruf kecil, kecuali ingat bahawa apabila kita berurusan dengan huruf kecil, mereka telah berbeza Nilai ASCII. Dan dengan itu kita perlu tolak dan menambah pada untuk beralih ke bawah dari huruf kecil yang Nilai ASCII dan kemudian kembali ke nilai ASCII huruf kecil asal. Dan akhirnya, yang akan memberi kita mesej yang disulitkan kami. Dan pada akhirnya, kita hanya mencetak mesej itu, dan itu sahaja. Nama saya Rob, dan Caesar.