>> ROB BOWDEN: Bună, eu sunt Rob.
Și atunci când în Roma, să program ca romanii fac.
Deci, primul lucru pe care trebuie să faceți este să verificați pentru a vă asigura că utilizatorul a introdus de fapt
numărul pe care ne-o dorim pentru a roti fiecare caracter de la linia de comandă.
>> Deci, vom verifica.
Argc este egal cu 2?
Dacă nu e, înseamnă că fie utilizatorul nu introduceți numărul de la
linie de comandă sau au intrat prea multe lucruri de la linia de comandă, în care
caz că nu știu ce să fac cu restul de lucruri.
Deci, atâta timp cât a fost de doua argc, putem continua cu restul programului.
>> Acum, amintiți-vă că argv 1 este întotdeauna un șir.
Dar vrem să-l trateze ca pe un întreg.
Deci, vom folosi funcția atoi care este set p menționat spec. pentru a converti
șir argv 1 la un număr întreg, și ne-am stoca că în cheie.
Vrem să ne asigurăm că întreg care a fost introdus nu este negativă.
Și dacă a fost, ne-o dorim pentru a imprima care a utilizatorul că nu au voie
a face acest lucru, și să se întoarcă.
>> Deci, acum avem un valid număr de utilizator.
Dar avem nevoie pentru a obține un șir de la de utilizator pe care ne-o dorim pentru a cripta.
Așa că am folosit pentru a face, în timp ce bucla și de a folosi obține șir pentru a obține acest șir de la
utilizatorului, și să continue obținerea de coarde până când de fapt
introduce un șir valid.
>> După ce vom avea ca șir, ne-am pot merge pe la ea cripta.
Deci, acest lucru pentru bucla este de a face că de criptare.
Observați că suntem iterarea de la i este egal cu 0 t tot drumul până la i egali
n, unde n este definit ca lungimea mesajul nostru, în cazul în care mesajul este
șir de caractere care utilizatorul a introdus.
>> Deci, suntem iterarea peste tot caractere în șir.
Și în cazul în care un personaj este litere mari, apoi am de gând să-l schimbe, folosind acest
formulă, pe care vom ajunge la un al doilea.
Și dacă a fost litere mici, apoi vom schimba folosind acest lucru este
formulă foarte asemănătoare.
Și dacă nu a fost nici o majusculă, nici o literă mică - de exemplu,
ar putea fi un număr sau un simbol - atunci nu se va face nimic pentru ea.
>> Deci, ce sunt aceste formule?
Ei bine, cum putem schimba caracterul A?
Vrem să trateze caracterul A ca numărul 0.
Și vrem să trateze caracterul B ca numărul 1, și așa mai departe.
Este personajele de grad zero și prima alfabetului și așa mai departe.
>> Deci, aici, mesaj i minus A se presupune pentru a ne da locul numeric a
literă din alfabet.
Deci, dacă un mesaj i este A, aceasta este de gând să ne dea 0.
Acum, ne-o dorim pentru a adăuga la faptul că număr care utilizatorul dorește să
roti scrisoarea.
Deci, în cazul în care au intrat 3, apoi în cazul în care mesajul Am fost, aceasta ne va da 0 și plus
cheie ne va da 3.
>> Deci, acum, avem în vedere locul al treilea în alfabetul.
Vom vedea de ce avem nevoie să mod prin scrisorile Num într-un al doilea.
Dar în cele din urmă, ne-am dori să adăugați pe la Un capăt din nou pentru a ne deplasa înapoi în
Valorile ASCII pentru aceste caractere în loc de locurile numerice în
alfabet de aceste personaje.
>> Deci, de ce nu ne Mod de scrisori Num?
Amintiți-vă că vrem să-și încheie în jurul de la sfârșitul alfabetului la
începutul alfabetului.
Deci, dacă utilizatorul ar fi intrat Z, atunci scăderea unui din care se va
ne da 25.
Și în cazul în care cheia a fost de 3, atunci vom avea 28.
Dar Z ar trebui să încheie în jurul valorii de ABC, deci 28 scrisori Num mod, care este definit hash
ca 26 de așteptat, va da noi 2, unde C este a doua literă de
alfabetul, dacă vă aduceți aminte că A este scrisoarea de grad zero a alfabetului.
>> De aceea avem nevoie să Mod de litere Num.
Acum, trebuie să facem exact același lucru pentru litere mici, cu excepția
amintiți-vă că, atunci când avem de a face cu litere mici, ei au diferite
Valori ASCII.
Și astfel avem nevoie pentru a scădea și se adaugă pe o să-l schimbe în jos de la minuscule
Valorile ASCII și apoi înapoi la valorile ASCII minuscule originale.
>> Și, în sfârșit, că ne va da mesajul nostru criptat.
Și în cele din urmă, ne-am imprima acel mesaj, și asta e tot.
Numele meu este Rob, și a fost Cezar.