1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Hej, jeg er Rob. 3 00:00:13,750 --> 00:00:17,360 Og når i Rom, lad os program som romerne gør. 4 00:00:17,360 --> 00:00:22,280 Så første ting, vi skal gøre, er at kontrollere at sørge for at brugeren faktisk er opført 5 00:00:22,280 --> 00:00:26,670 det nummer, som vi ønsker at rotere hver karakter ved på kommandolinjen. 6 00:00:26,670 --> 00:00:27,740 >> Så kontrollerer vi. 7 00:00:27,740 --> 00:00:30,180 Er argc lig med 2? 8 00:00:30,180 --> 00:00:34,190 Hvis det ikke er, det betyder, at brugeren enten ikke indtaste nummeret på 9 00:00:34,190 --> 00:00:37,770 kommandolinjen eller de trådte for mange ting på kommandolinjen, hvor 10 00:00:37,770 --> 00:00:40,560 hvis vi ikke ved, hvad de skal gøre med resten af ​​tingene. 11 00:00:40,560 --> 00:00:45,750 Så, så længe argc var to, vi kan fortsætte med resten af ​​programmet. 12 00:00:45,750 --> 00:00:49,610 >> Nu, så husk at argv 1 er altid en streng. 13 00:00:49,610 --> 00:00:52,490 Men vi ønsker at behandle det som et heltal. 14 00:00:52,490 --> 00:00:57,550 Så bruger vi atoi funktion, der er ovennævnte p sæt spec at konvertere 15 00:00:57,550 --> 00:01:02,330 streng argv 1 til et heltal, og vi gemmer det i nøgle. 16 00:01:02,330 --> 00:01:06,050 Vi ønsker at sikre, at heltal der blev indtastet ikke er negativ. 17 00:01:06,050 --> 00:01:09,490 Og hvis det var, vi ønsker at udskrive det til brugeren, at de ikke er tilladt 18 00:01:09,490 --> 00:01:11,980 at gøre det, og vende tilbage. 19 00:01:11,980 --> 00:01:15,100 >> Så nu har vi en gyldig nummer fra brugeren. 20 00:01:15,100 --> 00:01:19,780 Men vi har brug for at få en snor fra den bruger, som vi ønsker at kryptere. 21 00:01:19,780 --> 00:01:25,340 Så vi plejede at gøre, mens loop og bruge få snor for at få denne streng fra 22 00:01:25,340 --> 00:01:29,190 bruger, og fortsætte med at få snor indtil de rent faktisk 23 00:01:29,190 --> 00:01:31,270 indtaste en gyldig streng. 24 00:01:31,270 --> 00:01:34,400 >> Når vi har denne streng, vi kan gå på at kryptere det. 25 00:01:34,400 --> 00:01:38,120 Så er denne for-løkke gør at krypteringen. 26 00:01:38,120 --> 00:01:43,250 Bemærk, at vi iteration fra i lig 0 t hele vejen op til i ligemænd 27 00:01:43,250 --> 00:01:47,790 n, hvor n er defineret som længden af vores budskab, hvor budskabet er det 28 00:01:47,790 --> 00:01:50,260 streng, som brugeren har indtastet. 29 00:01:50,260 --> 00:01:54,330 >> Så vi iteration over alle tegn i strengen. 30 00:01:54,330 --> 00:01:59,740 Og hvis en karakter er et stort bogstav, og derefter vi kommer til at flytte den ved hjælp af denne 31 00:01:59,740 --> 00:02:01,860 formel, som vi vil komme til i en anden. 32 00:02:01,860 --> 00:02:05,260 Og hvis det var små bogstaver, så vi vil flytte det ved hjælp af dette er 33 00:02:05,260 --> 00:02:07,290 meget ens formel. 34 00:02:07,290 --> 00:02:10,850 Og hvis det var hverken et stort eller et lille bogstav - for eksempel, det 35 00:02:10,850 --> 00:02:15,370 kunne være et tal eller et symbol - så vi ikke kommer til at gøre noget for det. 36 00:02:15,370 --> 00:02:18,220 >> Så, hvad er disse formler? 37 00:02:18,220 --> 00:02:22,090 Nå, hvordan skal vi skifte karakter A? 38 00:02:22,090 --> 00:02:27,250 Vi ønsker at behandle tegn A som tallet 0. 39 00:02:27,250 --> 00:02:30,710 Og vi ønsker at behandle karakter B som nummer 1, og så videre. 40 00:02:30,710 --> 00:02:35,170 Det er nulte og første tegn i alfabetet og så videre. 41 00:02:35,170 --> 00:02:42,900 >> Så her er besked i minus A formodes at give os den numeriske stedet for 42 00:02:42,900 --> 00:02:44,400 bogstav i alfabetet. 43 00:02:44,400 --> 00:02:48,080 Så hvis budskab jeg er A, dette kommer til at give os 0. 44 00:02:48,080 --> 00:02:52,880 Nu ønsker vi at føje til, at den nummer, som brugeren ønsker at 45 00:02:52,880 --> 00:02:54,840 rotere bogstav. 46 00:02:54,840 --> 00:03:03,280 Så hvis de kom ind 3, så hvis besked Jeg var, vil dette give os 0 og plus 47 00:03:03,280 --> 00:03:05,400 nøgle vil give os 3. 48 00:03:05,400 --> 00:03:09,450 >> Så nu er vi overvejer tredje plads i alfabetet. 49 00:03:09,450 --> 00:03:12,810 Vi vil se, hvorfor vi er nødt til at mod ved NUM bogstaver i et sekund. 50 00:03:12,810 --> 00:03:18,700 Men til sidst, vi ønsker at tilføje til ende A igen for at flytte os tilbage i 51 00:03:18,700 --> 00:03:22,020 ASCII-værdier for disse tegn i stedet for de numeriske steder i 52 00:03:22,020 --> 00:03:24,260 alfabet af disse tegn. 53 00:03:24,260 --> 00:03:26,580 >> Så hvorfor gør vi Mod af num breve? 54 00:03:26,580 --> 00:03:29,960 Husk, at vi ønsker at indhyllingsafstand fra slutningen af ​​alfabetet til 55 00:03:29,960 --> 00:03:31,470 begyndelsen af ​​alfabetet. 56 00:03:31,470 --> 00:03:38,530 Så hvis brugeren havde indtastet Z-, så subtraktion A fra at der vil 57 00:03:38,530 --> 00:03:40,520 give os 25. 58 00:03:40,520 --> 00:03:44,800 Og hvis nøglen var 3, så vi kommer til at have 28. 59 00:03:44,800 --> 00:03:53,000 Men Z bør wrap rundt til ABC, så 28 mod num breve, der er hash defineret 60 00:03:53,000 --> 00:04:01,890 som 26 kan forventes, vil give os 2, hvor C er det andet bogstav på 61 00:04:01,890 --> 00:04:05,880 alfabetet, hvis du husker at A er nulte bogstav i alfabetet. 62 00:04:05,880 --> 00:04:09,210 >> Så det er derfor, vi er nødt til at mod ved NUM bogstaver. 63 00:04:09,210 --> 00:04:13,540 Nu er vi nødt til at gøre nøjagtig de samme ting for små bogstaver, undtagen 64 00:04:13,540 --> 00:04:17,240 huske, at når vi har at gøre med små bogstaver, de har forskellige 65 00:04:17,240 --> 00:04:18,579 ASCII-værdier. 66 00:04:18,579 --> 00:04:24,550 Og så er vi nødt til at trække og tilføje på en at flytte det ned fra små bogstaver 67 00:04:24,550 --> 00:04:30,020 ASCII-værdier og derefter tilbage til den oprindelige små ASCII-værdier. 68 00:04:30,020 --> 00:04:33,140 >> Og endelig vil der giver os vores krypteret meddelelse. 69 00:04:33,140 --> 00:04:37,780 Og i sidste ende, vi bare udskrive den besked, og det er det. 70 00:04:37,780 --> 00:04:39,875 Mit navn er Rob, og var Cæsar. 71 00:04:39,875 --> 00:04:49,856