>> 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.