1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> Роб BOWDEN: Здраво, јас сум Роб. 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 функција која е споменати стр сет спецификации за претворање на 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 Забележете дека ние сме процесирањето од i еднакво 0 t целиот пат до i изнесува 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 Ние сакаме да се третираат карактер A како број 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 Ќе видиме зошто треба да се современи од Num букви во секунда. 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 треба да заврши околу на ABC, па 28 современи Num писма, во кои е хаш дефинирани 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 >> Па тоа е причината зошто ние треба да МО од 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