>> ROB BOWDEN: Hei, jeg er Rob.
Og når du er i Roma, la oss program som romerne gjør.
Så, første vi må gjøre er å sjekke å sørge for at brukeren faktisk inngikk
nummeret som vi ønsker å rotere hver tegnet av på kommandolinjen.
>> Så sjekker vi.
Er argc lik 2?
Hvis det ikke er det, betyr at brukeren enten har ikke skrevet inn nummeret på
kommandolinje eller de tastet for mange ting på kommandolinjen, der
tilfelle vi ikke vet hva jeg skal gjøre med resten av tingene.
Så, så lenge argc var to, kan vi fortsette med resten av programmet.
>> Nå, husk at argv 1 er alltid en streng.
Men vi ønsker å behandle det som et heltall.
Så bruker vi atoi funksjon som er nevnte p sett spec å konvertere
string argv 1 til et heltall, og vi lagre det i nøkkelen.
Vi vil være sikker på at heltallet som ble inngått er ikke negativt.
Og hvis det var, vi ønsker å skrive ut denne til brukeren om at de ikke har lov
å gjøre det, og kommer tilbake.
>> Så nå har vi en gyldig nummer fra brukeren.
Men vi trenger å få en streng fra bruker som vi ønsker å kryptere.
Så vi pleide å gjøre-while løkke og bruke få streng for å få denne strengen fra
bruker, og fortsette å få streng før de faktisk
angi en gyldig streng.
>> Når vi har denne strengen, vi kan gå på for å kryptere den.
Så, er dette for loop å gjøre at kryptering.
Legg merke til at vi gjentar fra i lik 0 t hele veien opp til i. likemenn
n, hvor n er definert som lengden budskapet, hvor meldingen er
streng som den som brukeren.
>> Så vi gjentar over alt tegn i strengen.
Og hvis en karakter er store bokstaver, deretter vi kommer til å skifte den ved hjelp av dette
formel, som vi vil få til i et sekund.
Og hvis det ble små bokstaver, deretter vi vil skifte den ved hjelp av dette er
svært lik formel.
Og hvis det var verken en stor bokstav eller en liten bokstav - for eksempel det
kunne være et tall eller et symbol - så vi kommer ikke til å gjøre noe til det.
>> Så, hva er disse formlene?
Vel, hvordan skal vi skifte karakter A?
Vi ønsker å behandle tegnet En som nummer 0.
Og vi ønsker å behandle tegnet B som nummer 1, og så videre.
Det er zeroth og første tegn i alfabetet, og så videre.
>> Så her er meldingen jeg minus En antatt for å gi oss den numeriske stedet for
bokstav i alfabetet.
Så hvis meldingen jeg er A, dette kommer til å gi oss 0.
Nå ønsker vi å legge til at nummer som brukeren ønsker å
rotere brevet etter.
Så, hvis de kom inn 3, så hvis meldingen Jeg var, vil dette gi oss 0 og pluss
Nøkkelen vil gi oss tre.
>> Så nå er vi vurderer tredje plass i alfabetet.
Vi får se hvorfor vi trenger å mod etter num bokstaver i et sekund.
Men til slutt, ønsker vi å legge seg på ende A igjen for å skifte oss tilbake inn i
ASCII-verdier for disse tegnene i stedet for de numeriske steder i
alfabetet av disse tegnene.
>> Så, hvorfor vi mod av num bokstaver gjør?
Husk at vi ønsker å vikle rundt fra enden av alfabetet til
begynnelsen av alfabetet.
Så hvis brukeren hadde angitt Z, deretter trekke fra A fra som kommer til å
gi oss 25.
Og hvis nøkkelen var tre, deretter vi kommer til å ha 28.
Men Z bør brytes rundt til ABC, så 28 mod num bokstaver, som er hash definerte
som 26 kan forventes, kommer til å gi oss to, der C er den andre bokstaven i
alfabetet, hvis du husker at A er zeroth bokstaven i alfabetet.
>> Så det er derfor vi trenger å mod av num bokstaver.
Nå trenger vi å gjøre de samme ting for små bokstaver, unntatt
husk at når vi har å gjøre med små bokstaver, de har forskjellig
ASCII-verdier.
Og så må vi trekke fra og legge til på en å skifte den ned fra små bokstaver
ASCII-verdier og deretter tilbake til opprinnelige små ASCII-verdier.
>> Og til slutt, som vil gi oss vår kryptert melding.
Og til slutt, vi bare skrive ut denne meldingen, og det er det.
Mitt navn er Rob, og var Caesar.