1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Bună, eu sunt Rob. 3 00:00:13,750 --> 00:00:17,360 Și atunci când în Roma, să program ca romanii fac. 4 00:00:17,360 --> 00:00:22,280 Deci, primul lucru pe care trebuie să faceți este să verificați pentru a vă asigura că utilizatorul a introdus de fapt 5 00:00:22,280 --> 00:00:26,670 numărul pe care ne-o dorim pentru a roti fiecare caracter de la linia de comandă. 6 00:00:26,670 --> 00:00:27,740 >> Deci, vom verifica. 7 00:00:27,740 --> 00:00:30,180 Argc este egal cu 2? 8 00:00:30,180 --> 00:00:34,190 Dacă nu e, înseamnă că fie utilizatorul nu introduceți numărul de la 9 00:00:34,190 --> 00:00:37,770 linie de comandă sau au intrat prea multe lucruri de la linia de comandă, în care 10 00:00:37,770 --> 00:00:40,560 caz că nu știu ce să fac cu restul de lucruri. 11 00:00:40,560 --> 00:00:45,750 Deci, atâta timp cât a fost de doua argc, putem continua cu restul programului. 12 00:00:45,750 --> 00:00:49,610 >> Acum, amintiți-vă că argv 1 este întotdeauna un șir. 13 00:00:49,610 --> 00:00:52,490 Dar vrem să-l trateze ca pe un întreg. 14 00:00:52,490 --> 00:00:57,550 Deci, vom folosi funcția atoi care este set p menționat spec. pentru a converti 15 00:00:57,550 --> 00:01:02,330 șir argv 1 la un număr întreg, și ne-am stoca că în cheie. 16 00:01:02,330 --> 00:01:06,050 Vrem să ne asigurăm că întreg care a fost introdus nu este negativă. 17 00:01:06,050 --> 00:01:09,490 Și dacă a fost, ne-o dorim pentru a imprima care a utilizatorul că nu au voie 18 00:01:09,490 --> 00:01:11,980 a face acest lucru, și să se întoarcă. 19 00:01:11,980 --> 00:01:15,100 >> Deci, acum avem un valid număr de utilizator. 20 00:01:15,100 --> 00:01:19,780 Dar avem nevoie pentru a obține un șir de la de utilizator pe care ne-o dorim pentru a cripta. 21 00:01:19,780 --> 00:01:25,340 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 22 00:01:25,340 --> 00:01:29,190 utilizatorului, și să continue obținerea de coarde până când de fapt 23 00:01:29,190 --> 00:01:31,270 introduce un șir valid. 24 00:01:31,270 --> 00:01:34,400 >> După ce vom avea ca șir, ne-am pot merge pe la ea cripta. 25 00:01:34,400 --> 00:01:38,120 Deci, acest lucru pentru bucla este de a face că de criptare. 26 00:01:38,120 --> 00:01:43,250 Observați că suntem iterarea de la i este egal cu 0 t tot drumul până la i egali 27 00:01:43,250 --> 00:01:47,790 n, unde n este definit ca lungimea mesajul nostru, în cazul în care mesajul este 28 00:01:47,790 --> 00:01:50,260 șir de caractere care utilizatorul a introdus. 29 00:01:50,260 --> 00:01:54,330 >> Deci, suntem iterarea peste tot caractere în șir. 30 00:01:54,330 --> 00:01:59,740 Și în cazul în care un personaj este litere mari, apoi am de gând să-l schimbe, folosind acest 31 00:01:59,740 --> 00:02:01,860 formulă, pe care vom ajunge la un al doilea. 32 00:02:01,860 --> 00:02:05,260 Și dacă a fost litere mici, apoi vom schimba folosind acest lucru este 33 00:02:05,260 --> 00:02:07,290 formulă foarte asemănătoare. 34 00:02:07,290 --> 00:02:10,850 Și dacă nu a fost nici o majusculă, nici o literă mică - de exemplu, 35 00:02:10,850 --> 00:02:15,370 ar putea fi un număr sau un simbol - atunci nu se va face nimic pentru ea. 36 00:02:15,370 --> 00:02:18,220 >> Deci, ce sunt aceste formule? 37 00:02:18,220 --> 00:02:22,090 Ei bine, cum putem schimba caracterul A? 38 00:02:22,090 --> 00:02:27,250 Vrem să trateze caracterul A ca numărul 0. 39 00:02:27,250 --> 00:02:30,710 Și vrem să trateze caracterul B ca numărul 1, și așa mai departe. 40 00:02:30,710 --> 00:02:35,170 Este personajele de grad zero și prima alfabetului și așa mai departe. 41 00:02:35,170 --> 00:02:42,900 >> Deci, aici, mesaj i minus A se presupune pentru a ne da locul numeric a 42 00:02:42,900 --> 00:02:44,400 literă din alfabet. 43 00:02:44,400 --> 00:02:48,080 Deci, dacă un mesaj i este A, aceasta este de gând să ne dea 0. 44 00:02:48,080 --> 00:02:52,880 Acum, ne-o dorim pentru a adăuga la faptul că număr care utilizatorul dorește să 45 00:02:52,880 --> 00:02:54,840 roti scrisoarea. 46 00:02:54,840 --> 00:03:03,280 Deci, în cazul în care au intrat 3, apoi în cazul în care mesajul Am fost, aceasta ne va da 0 și plus 47 00:03:03,280 --> 00:03:05,400 cheie ne va da 3. 48 00:03:05,400 --> 00:03:09,450 >> Deci, acum, avem în vedere locul al treilea în alfabetul. 49 00:03:09,450 --> 00:03:12,810 Vom vedea de ce avem nevoie să mod prin scrisorile Num într-un al doilea. 50 00:03:12,810 --> 00:03:18,700 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 51 00:03:18,700 --> 00:03:22,020 Valorile ASCII pentru aceste caractere în loc de locurile numerice în 52 00:03:22,020 --> 00:03:24,260 alfabet de aceste personaje. 53 00:03:24,260 --> 00:03:26,580 >> Deci, de ce nu ne Mod de scrisori Num? 54 00:03:26,580 --> 00:03:29,960 Amintiți-vă că vrem să-și încheie în jurul de la sfârșitul alfabetului la 55 00:03:29,960 --> 00:03:31,470 începutul alfabetului. 56 00:03:31,470 --> 00:03:38,530 Deci, dacă utilizatorul ar fi intrat Z, atunci scăderea unui din care se va 57 00:03:38,530 --> 00:03:40,520 ne da 25. 58 00:03:40,520 --> 00:03:44,800 Și în cazul în care cheia a fost de 3, atunci vom avea 28. 59 00:03:44,800 --> 00:03:53,000 Dar Z ar trebui să încheie în jurul valorii de ABC, deci 28 scrisori Num mod, care este definit hash 60 00:03:53,000 --> 00:04:01,890 ca 26 de așteptat, va da noi 2, unde C este a doua literă de 61 00:04:01,890 --> 00:04:05,880 alfabetul, dacă vă aduceți aminte că A este scrisoarea de grad zero a alfabetului. 62 00:04:05,880 --> 00:04:09,210 >> De aceea avem nevoie să Mod de litere Num. 63 00:04:09,210 --> 00:04:13,540 Acum, trebuie să facem exact același lucru pentru litere mici, cu excepția 64 00:04:13,540 --> 00:04:17,240 amintiți-vă că, atunci când avem de a face cu litere mici, ei au diferite 65 00:04:17,240 --> 00:04:18,579 Valori ASCII. 66 00:04:18,579 --> 00:04:24,550 Și astfel avem nevoie pentru a scădea și se adaugă pe o să-l schimbe în jos de la minuscule 67 00:04:24,550 --> 00:04:30,020 Valorile ASCII și apoi înapoi la valorile ASCII minuscule originale. 68 00:04:30,020 --> 00:04:33,140 >> Și, în sfârșit, că ne va da mesajul nostru criptat. 69 00:04:33,140 --> 00:04:37,780 Și în cele din urmă, ne-am imprima acel mesaj, și asta e tot. 70 00:04:37,780 --> 00:04:39,875 Numele meu este Rob, și a fost Cezar. 71 00:04:39,875 --> 00:04:49,856