>> ROB BOWDEN: Hej, jeg er Rob.
Og når i Rom, lad os program som romerne gør.
Så første ting, vi skal gøre, er at kontrollere at sørge for at brugeren faktisk er opført
det nummer, som vi ønsker at rotere hver karakter ved på kommandolinjen.
>> Så kontrollerer vi.
Er argc lig med 2?
Hvis det ikke er, det betyder, at brugeren enten ikke indtaste nummeret på
kommandolinjen eller de trådte for mange ting på kommandolinjen, hvor
hvis vi ikke ved, hvad de skal gøre med resten af ​​tingene.
Så, så længe argc var to, vi kan fortsætte med resten af ​​programmet.
>> Nu, så husk at argv 1 er altid en streng.
Men vi ønsker at behandle det som et heltal.
Så bruger vi atoi funktion, der er ovennævnte p sæt spec at konvertere
streng argv 1 til et heltal, og vi gemmer det i nøgle.
Vi ønsker at sikre, at heltal der blev indtastet ikke er negativ.
Og hvis det var, vi ønsker at udskrive det til brugeren, at de ikke er tilladt
at gøre det, og vende tilbage.
>> Så nu har vi en gyldig nummer fra brugeren.
Men vi har brug for at få en snor fra den bruger, som vi ønsker at kryptere.
Så vi plejede at gøre, mens loop og bruge få snor for at få denne streng fra
bruger, og fortsætte med at få snor indtil de rent faktisk
indtaste en gyldig streng.
>> Når vi har denne streng, vi kan gå på at kryptere det.
Så er denne for-løkke gør at krypteringen.
Bemærk, at vi iteration fra i lig 0 t hele vejen op til i ligemænd
n, hvor n er defineret som længden af vores budskab, hvor budskabet er det
streng, som brugeren har indtastet.
>> Så vi iteration over alle tegn i strengen.
Og hvis en karakter er et stort bogstav, og derefter vi kommer til at flytte den ved hjælp af denne
formel, som vi vil komme til i en anden.
Og hvis det var små bogstaver, så vi vil flytte det ved hjælp af dette er
meget ens formel.
Og hvis det var hverken et stort eller et lille bogstav - for eksempel, det
kunne være et tal eller et symbol - så vi ikke kommer til at gøre noget for det.
>> Så, hvad er disse formler?
Nå, hvordan skal vi skifte karakter A?
Vi ønsker at behandle tegn A som tallet 0.
Og vi ønsker at behandle karakter B som nummer 1, og så videre.
Det er nulte og første tegn i alfabetet og så videre.
>> Så her er besked i minus A formodes at give os den numeriske stedet for
bogstav i alfabetet.
Så hvis budskab jeg er A, dette kommer til at give os 0.
Nu ønsker vi at føje til, at den nummer, som brugeren ønsker at
rotere bogstav.
Så hvis de kom ind 3, så hvis besked Jeg var, vil dette give os 0 og plus
nøgle vil give os 3.
>> Så nu er vi overvejer tredje plads i alfabetet.
Vi vil se, hvorfor vi er nødt til at mod ved NUM bogstaver i et sekund.
Men til sidst, vi ønsker at tilføje til ende A igen for at flytte os tilbage i
ASCII-værdier for disse tegn i stedet for de numeriske steder i
alfabet af disse tegn.
>> Så hvorfor gør vi Mod af num breve?
Husk, at vi ønsker at indhyllingsafstand fra slutningen af ​​alfabetet til
begyndelsen af ​​alfabetet.
Så hvis brugeren havde indtastet Z-, så subtraktion A fra at der vil
give os 25.
Og hvis nøglen var 3, så vi kommer til at have 28.
Men Z bør wrap rundt til ABC, så 28 mod num breve, der er hash defineret
som 26 kan forventes, vil give os 2, hvor C er det andet bogstav på
alfabetet, hvis du husker at A er nulte bogstav i alfabetet.
>> Så det er derfor, vi er nødt til at mod ved NUM bogstaver.
Nu er vi nødt til at gøre nøjagtig de samme ting for små bogstaver, undtagen
huske, at når vi har at gøre med små bogstaver, de har forskellige
ASCII-værdier.
Og så er vi nødt til at trække og tilføje på en at flytte det ned fra små bogstaver
ASCII-værdier og derefter tilbage til den oprindelige små ASCII-værdier.
>> Og endelig vil der giver os vores krypteret meddelelse.
Og i sidste ende, vi bare udskrive den besked, og det er det.
Mit navn er Rob, og var Cæsar.