1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA Chan: Onnittelut on viimeistely 3 00:00:11,270 --> 00:00:13,200 Pari ensimmäistä C-ohjelmia. 4 00:00:13,200 --> 00:00:16,379 Tiedän, että ensimmäinen kokeilu C syntaksin voi olla pelottava. 5 00:00:16,379 --> 00:00:20,060 Mutta vakuutan teille, lopussa Tietenkin voit tarkastella 6 00:00:20,060 --> 00:00:23,870 Pari ensimmäistä toimeksiantoja ja täyttämään ne muutamassa minuutissa. 7 00:00:23,870 --> 00:00:27,830 >> Nyt saat tutumpi syntaksin, käykäämme Caesar. 8 00:00:27,830 --> 00:00:31,720 Caesar, käyttäjä antaa kokonaisluku näppäintä komentoriviltä 9 00:00:31,720 --> 00:00:35,300 argumentti, kirjoita pelkkää tekstiviesti milloin nopeasti. 10 00:00:35,300 --> 00:00:38,050 Tällöin ohjelma salakirjoittaa tekstin ja tulostaa 11 00:00:38,050 --> 00:00:40,020 niiden salakieli viesti. 12 00:00:40,020 --> 00:00:42,980 >> Salaus Caesar on melko yksinkertainen. 13 00:00:42,980 --> 00:00:46,455 Shift jokainen kirjain, niiden pelkkää tekstiä, jonka avain. 14 00:00:46,455 --> 00:00:49,220 Tämän seurauksena se on myös melko turvaton. 15 00:00:49,220 --> 00:00:53,850 Mutta niiden toteuttaminen Caesar käyttöön meitä ASCIIMath ja array tiedot 16 00:00:53,850 --> 00:00:54,460 rakenteita. 17 00:00:54,460 --> 00:00:57,510 Pääsemme monimutkaisempia salaus myöhemmin. 18 00:00:57,510 --> 00:01:01,680 Jossa Caesar avain 2, kirjaimella A pelkkää tekstiä edustaisivat 19 00:01:01,680 --> 00:01:07,580 kirjain C salakirjoitusteksti koska C on kaksi kirjainta jälkeen A. B olisi 20 00:01:07,580 --> 00:01:12,450 edustaa D ja C E. Kohti aakkosten loppuun, W on 21 00:01:12,450 --> 00:01:18,550 edustaa Y ja X Z. Mutta Y ei ole kahta kirjainta jälkeen, joten 22 00:01:18,550 --> 00:01:21,070 salaimet kiertyy aakkoset. 23 00:01:21,070 --> 00:01:27,190 Y tekstimuodossa edustavat siis Vuonna salatekstiin ja Z B. Se voi 24 00:01:27,190 --> 00:01:32,080 auttaa nähdäksesi Caesar Cypher kuten jatkuva aakkoset pyörä. 25 00:01:32,080 --> 00:01:35,760 >> Salaamaan niiden tekstiä, käyttäjä tulee kaksi argumenttia 26 00:01:35,760 --> 00:01:37,090 osaksi komentoriviltä - 27 00:01:37,090 --> 00:01:40,010 . / Caesar jälkeen näppäintä. 28 00:01:40,010 --> 00:01:44,710 Kuten aina, me emme voi luottaa käyttäjän täysin syöttää tulo, jotka tekevät 29 00:01:44,710 --> 00:01:45,800 järkevää ohjelmaamme. 30 00:01:45,800 --> 00:01:50,670 Joten meidän täytyy vahvistaa niiden komentoriviltä tulo. 31 00:01:50,670 --> 00:01:57,285 >> Sen sijaan käyttää int main mitätön, olemme käyttäen int main, int argc, merkkijono argv. 32 00:01:57,285 --> 00:02:01,730 Kokonaisluku muuttuja argc edustaa argumenttien määrä johdetaan 33 00:02:01,730 --> 00:02:02,880 komentoriviltä. 34 00:02:02,880 --> 00:02:09,070 Ja argv on array, tai ajattele sitä luetteloon, argumenttien sisään 35 00:02:09,070 --> 00:02:12,000 >> Joten Caesar, miten voimme vahvistaa käyttäjän panos? 36 00:02:12,000 --> 00:02:15,870 No, ne pitäisi vain olla pääsy kaksi komentoriviargumentteja - 37 00:02:15,870 --> 00:02:18,150 . / Caesar ja avain. 38 00:02:18,150 --> 00:02:22,340 Joten jos argc ei ole 2, mikä tarkoittaa, että he joko unohtivat avain ja vain 39 00:02:22,340 --> 00:02:27,230 tuli. / caesar, tai ne tuli useita avaimia. 40 00:02:27,230 --> 00:02:29,770 >> Jos näin on, Tulet haluat tulostaa ohjeet 41 00:02:29,770 --> 00:02:30,910 ja sulje ohjelma. 42 00:02:30,910 --> 00:02:34,320 Ne täytyy yrittää uudelleen komentoriviltä. 43 00:02:34,320 --> 00:02:37,430 Mutta vaikka argc on 2, sinun täytyy tarkistaa, ovatko ne 44 00:02:37,430 --> 00:02:39,100 antaa sinulle asianmukaista näppäintä. 45 00:02:39,100 --> 00:02:40,730 Caesar, tarvitset kokonaisluku. 46 00:02:40,730 --> 00:02:43,260 Mutta argv on Merkkijonotaulukko. 47 00:02:43,260 --> 00:02:46,490 Miten päästä että avain? 48 00:02:46,490 --> 00:02:47,850 >> Nopea silmäys paneelit - 49 00:02:47,850 --> 00:02:51,410 tietorakenteita, jotka pitävät useita arvot samaa tietotyyppiä. 50 00:02:51,410 --> 00:02:55,350 Merkinnät ovat nolla-indeksoitu, mikä tarkoittaa, että Ensimmäinen tekijä on indeksi nolla 51 00:02:55,350 --> 00:03:00,260 ja viimeinen osa on indeksi koko miinus 1, jossa koko on määrä 52 00:03:00,260 --> 00:03:02,850 elementtejä jono. 53 00:03:02,850 --> 00:03:07,380 >> Jos minä julisti uuden string array postilaatikko pituus 3, visuaalisesti, se 54 00:03:07,380 --> 00:03:08,570 näyttää tältä. 55 00:03:08,570 --> 00:03:11,520 Kolme konttia jousille , Vierekkäin. 56 00:03:11,520 --> 00:03:15,445 Voit käyttää mitä tahansa elementti, kirjoitat nimen ja array ja ilmoittaa sitten 57 00:03:15,445 --> 00:03:18,080 indeksin hakasuluissa. 58 00:03:18,080 --> 00:03:21,610 Täällä olen arvon määrityksessä kunkin elementti, aivan kuten tekisin mitään 59 00:03:21,610 --> 00:03:24,310 muut merkkijonomuuttuja. 60 00:03:24,310 --> 00:03:29,020 >> Joten pääsevän komentoriviargumentteja, meidän täytyy tehdä, on saada 61 00:03:29,020 --> 00:03:31,690 oikea osa argv array. 62 00:03:31,690 --> 00:03:37,360 Jos käyttäjä kirjoittaa. / Blastoff Team Raketti terminaaliin, argv 0 olisi 63 00:03:37,360 --> 00:03:38,950 olla. / blastoff. 64 00:03:38,950 --> 00:03:45,010 argv olisi Team, ja arg2 olisi raketti. 65 00:03:45,010 --> 00:03:47,670 >> Nyt voimme käyttää keskeisiä, meidän pitää vielä 66 00:03:47,670 --> 00:03:49,040 Varmista, että se on oikein. 67 00:03:49,040 --> 00:03:51,060 Meidän täytyy muuntaa sen kokonaisluku. 68 00:03:51,060 --> 00:03:54,680 Mutta emme voi vain heittää kuten olemme tehneet aiemmin. 69 00:03:54,680 --> 00:03:58,800 Onneksi Y-toiminto huolehtii Tämän meille ja jopa palauttaa 0 70 00:03:58,800 --> 00:04:02,110 jos merkkijono ei voi muuntaa osaksi kokonaisluku. 71 00:04:02,110 --> 00:04:04,450 Se on sinun, vaikka kertoa Käyttäjä miksi et 72 00:04:04,450 --> 00:04:06,220 anna ohjelman jatkaa. 73 00:04:06,220 --> 00:04:10,710 Tulos tallennetaan ja Y kokonaisluku, ja sinulla on avain. 74 00:04:10,710 --> 00:04:12,070 Seuraava osa on yksinkertainen. 75 00:04:12,070 --> 00:04:15,940 Pyydä käyttäjän niiden pelkkää tekstiä, joka on tietojen muotoilumerkkijonossa. 76 00:04:15,940 --> 00:04:18,339 Onneksemme kaikki käyttäjän syöttämää jouset ovat voimassa. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Nyt meillä on kaikki tarvittavat tiedot käyttäjältä, on aika meille 79 00:04:24,760 --> 00:04:26,520 salaamaan niiden viesti. 80 00:04:26,520 --> 00:04:29,200 Käsite Caesar on yksinkertainen riitä ymmärtämään. 81 00:04:29,200 --> 00:04:33,750 Mutta miten tietokone tietää, mikä kirjaimet tulevat peräkkäin? 82 00:04:33,750 --> 00:04:36,100 >> Tässä kun ASCII taulukon tulee sisään 83 00:04:36,100 --> 00:04:39,420 Jokaisella hahmolla on kokonaisluku määrä liittyy siihen. 84 00:04:39,420 --> 00:04:41,380 Capital on 65 vuotta. 85 00:04:41,380 --> 00:04:43,310 Capital B on 66. 86 00:04:43,310 --> 00:04:45,260 Pienet on 97. 87 00:04:45,260 --> 00:04:47,590 Pieniä b on 98. 88 00:04:47,590 --> 00:04:50,770 Mutta merkit eivät rajoitu vain aakkosellinen numeroita. 89 00:04:50,770 --> 00:04:56,020 Esimerkiksi @ symboli on ASCII numero 64. 90 00:04:56,020 --> 00:04:59,690 >> Ennen kuin käsittelen koko jono, kuvitellaan meidän täytyy vain siirtää 91 00:04:59,690 --> 00:05:01,220 yksi merkki. 92 00:05:01,220 --> 00:05:04,640 No, me vain haluamme siirtää todellisen kirjaimet pelkkää tekstiä, ei 93 00:05:04,640 --> 00:05:06,020 merkkejä tai numeroita. 94 00:05:06,020 --> 00:05:09,100 Joten ensimmäinen asia, että me haluamme tarkistaa, onko merkki on 95 00:05:09,100 --> 00:05:10,430 aakkoset. 96 00:05:10,430 --> 00:05:14,460 >> Toiminto isalpha tekee tämän meitä ja palauttaa Boolen - 97 00:05:14,460 --> 00:05:18,570 totta, jos merkkejä on kirjain, false jos toisin. 98 00:05:18,570 --> 00:05:22,270 Kaksi muuta hyödyllisiä toimintoja ovat isupper ja islower kanssa 99 00:05:22,270 --> 00:05:23,860 itsestäänselvyyksiä nimiä. 100 00:05:23,860 --> 00:05:27,370 He palaavat totta, jos annetaan merkki on isoja tai pieniä, 101 00:05:27,370 --> 00:05:28,740 vastaavasti. 102 00:05:28,740 --> 00:05:33,770 Koska ne ovat booleans, he hyödyllistä käyttää olosuhteissa. 103 00:05:33,770 --> 00:05:38,310 >> Jos isalpha palauttaa true, sinun siirtää, että merkin näppäintä. 104 00:05:38,310 --> 00:05:43,750 Joten avoin ASCIIMath ja tehdä joitakin ASCII matematiikka. 105 00:05:43,750 --> 00:05:48,700 Käyttö on hyvin samanlainen käyttö Caesar ja vie avaimen 106 00:05:48,700 --> 00:05:50,870 komentoriviltä. 107 00:05:50,870 --> 00:05:59,590 >> Jos juoksen ASCIIMath 5, se näyttää lisäävän 5, annoitte minulle kirjeen f ja 108 00:05:59,590 --> 00:06:01,260 näyttää ASCII-arvo. 109 00:06:01,260 --> 00:06:04,090 Joten katsomaan ohjelmaa. 110 00:06:04,090 --> 00:06:11,820 >> Saatat ihmetellä, täällä, miksi kirjain on kokonaisluku, kun se on 111 00:06:11,820 --> 00:06:14,330 selkeästi, hyvin, kirjeen. 112 00:06:14,330 --> 00:06:17,690 On käynyt ilmi, että merkit ja kokonaisluvut ovat vaihdettavissa. 113 00:06:17,690 --> 00:06:21,730 Tuomalla kirjeen yhden lainausmerkkejä, kokonaisluku voidaan tallentaa 114 00:06:21,730 --> 00:06:25,390 ASCII-arvo pääoman A. Ole varovainen, vaikka. 115 00:06:25,390 --> 00:06:27,150 Tarvitset yhden vaatteita. 116 00:06:27,150 --> 00:06:31,260 Ilman yhden lainausmerkit, kääntäjä olisi etsittävä muuttujan 117 00:06:31,260 --> 00:06:35,510 nimetty, eikä luonnetta. 118 00:06:35,510 --> 00:06:42,140 >> Sitten lisään kirjeen ja avaimen, tallentamiseen summa int muuttujia tulos. 119 00:06:42,140 --> 00:06:47,740 Vaikka tulos on tietotyyppi kokonaisluku, minun printf selvitys käyttää 120 00:06:47,740 --> 00:06:50,370 % C paikanvaraaja merkkiä. 121 00:06:50,370 --> 00:06:54,530 Niin ohjelma tulostaa merkki liittyvä kokonaisluku tulos. 122 00:06:54,530 --> 00:07:00,400 Ja koska me painettu kokonaisluku muodossa sekä käyttämällä% d, näemme 123 00:07:00,400 --> 00:07:02,110 numero samoin. 124 00:07:02,110 --> 00:07:04,450 Nyt voit nähdä, että olemme hoitoon merkkiä ja 125 00:07:04,450 --> 00:07:06,980 kokonaislukuja, ja päinvastoin. 126 00:07:06,980 --> 00:07:12,205 >> Katsotaanpa testi ulos ASCIIMath muutaman kertaa käyttäen 25 keskeisenä. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Saamme kirjain z. 129 00:07:17,090 --> 00:07:19,750 Nyt yritämme 26. 130 00:07:19,750 --> 00:07:25,600 Haluamme saada kirjeen, mutta sijaan saamme vasen kiinnike. 131 00:07:25,600 --> 00:07:29,490 Joten tietenkin vain lisäämällä avain kirjain ei tee. 132 00:07:29,490 --> 00:07:32,780 Meidän täytyy selvittää kaava paketoida noin aakkoset, kuten meidän 133 00:07:32,780 --> 00:07:34,570 Esimerkiksi alussa teki. 134 00:07:34,570 --> 00:07:38,520 >> Kaava Caesarin muutos on seuraava. 135 00:07:38,520 --> 00:07:42,750 c vastaa p plus k modulo 26. 136 00:07:42,750 --> 00:07:46,040 Muista, että modulo on hyödyllinen toimintaa, joka antaa meille loput 137 00:07:46,040 --> 00:07:49,880 jakamalla yhden numeron muut. 138 00:07:49,880 --> 00:07:54,870 Katsotaanpa soveltaa tätä kaavaa tavallinen tekstiä kirjeen keskeisiä 2. 139 00:07:54,870 --> 00:08:01,810 ASCII-arvo y on 89, joka antaa meille 91 modulo 26, 140 00:08:01,810 --> 00:08:03,690 mikä vastaa 13 - 141 00:08:03,690 --> 00:08:08,740 todellakaan ole ASCII-arvo a, joka on 67. 142 00:08:08,740 --> 00:08:12,810 >> Huumori minua nyt ja siirtyä pois ASCII arvot aakkosellinen hakemisto 143 00:08:12,810 --> 00:08:18,690 jossa on nolla ja Z on 25, siten, että Y on 24. 144 00:08:18,690 --> 00:08:25,830 24 plus 2, modulo 6, antaa meille 26, modulo 26, 0, joka on 145 00:08:25,830 --> 00:08:28,170 aakkosellinen hakemisto. 146 00:08:28,170 --> 00:08:32,980 Joten tämä kaava näyttää soveltaa aakkosellinen hakemisto ja kirjaimen 147 00:08:32,980 --> 00:08:34,960 ei sen ASCII-arvo. 148 00:08:34,960 --> 00:08:37,630 >> Mutta aloitat ASCII-arvot. 149 00:08:37,630 --> 00:08:41,650 Ja tulostaa salakieli luonnetta, sinun sen ASCII-arvo samoin. 150 00:08:41,650 --> 00:08:46,400 Se on sinun, sitten selvittää miten vaihtaa edestakaisin. 151 00:08:46,400 --> 00:08:49,850 >> Kun selvittää oikean kaavan yhden merkin, sinun ei tarvitse tehdä 152 00:08:49,850 --> 00:08:53,520 on soveltaa samaa kaavaa jokaiselle kirjeen tekstimuodossa - 153 00:08:53,520 --> 00:08:57,720 ainoastaan, jos tämä kirje on aakkosjärjestyksessä, tietenkin. 154 00:08:57,720 --> 00:09:02,360 Ja muista, että sinun täytyy säilyttää tapauksessa ylempi tai alempi, sinne 155 00:09:02,360 --> 00:09:06,890 isupper ja isLower toiminnot aiemmin mainittiin tulee kätevä. 156 00:09:06,890 --> 00:09:08,830 Saatat olla kaksi kaavat - 157 00:09:08,830 --> 00:09:11,680 yksi isoja kirjaimia ja yksi pieniä. 158 00:09:11,680 --> 00:09:18,420 Joten isupper isLower auttaa sinua mitkä kaava hakea. 159 00:09:18,420 --> 00:09:22,460 >> Miten haet kaava jokaiselle yhden merkin merkkijono? 160 00:09:22,460 --> 00:09:25,910 No, merkkijono on vain joukko merkkiä. 161 00:09:25,910 --> 00:09:31,150 Joten voit käyttää kunkin merkin ryhmittely yli jokaisen merkin 162 00:09:31,150 --> 00:09:33,450 merkkijono silmukka. 163 00:09:33,450 --> 00:09:37,550 Kuten kunnon varten silmukka, toiminnon strlen, jousikvartetille 164 00:09:37,550 --> 00:09:39,280 pituus, on kätevää. 165 00:09:39,280 --> 00:09:44,020 Se vie narua tulo-ja palauttaa pituus merkkijonon. 166 00:09:44,020 --> 00:09:49,250 Varmista, että myös oikea kirjasto käyttää merkkijonon pituus toimintoa. 167 00:09:49,250 --> 00:09:51,790 >> Ja siellä sinulla on salakieli. 168 00:09:51,790 --> 00:09:53,260 Nimeni on Zamyla. 169 00:09:53,260 --> 00:09:54,510 Ja [puhutaan CODE]. 170 00:09:54,510 --> 00:10:02,944