ZAMYLA Chan: Onnittelut on viimeistely Pari ensimmäistä C-ohjelmia. Tiedän, että ensimmäinen kokeilu C syntaksin voi olla pelottava. Mutta vakuutan teille, lopussa Tietenkin voit tarkastella Pari ensimmäistä toimeksiantoja ja täyttämään ne muutamassa minuutissa. Nyt saat tutumpi syntaksin, käykäämme Caesar. Caesar, käyttäjä antaa kokonaisluku näppäintä komentoriviltä argumentti, kirjoita pelkkää tekstiviesti milloin nopeasti. Tällöin ohjelma salakirjoittaa tekstin ja tulostaa niiden salakieli viesti. Salaus Caesar on melko yksinkertainen. Shift jokainen kirjain, niiden pelkkää tekstiä, jonka avain. Tämän seurauksena se on myös melko turvaton. Mutta niiden toteuttaminen Caesar käyttöön meitä ASCIIMath ja array tiedot rakenteita. Pääsemme monimutkaisempia salaus myöhemmin. Jossa Caesar avain 2, kirjaimella A pelkkää tekstiä edustaisivat kirjain C salakirjoitusteksti koska C on kaksi kirjainta jälkeen A. B olisi edustaa D ja C E. Kohti aakkosten loppuun, W on edustaa Y ja X Z. Mutta Y ei ole kahta kirjainta jälkeen, joten salaimet kiertyy aakkoset. Y tekstimuodossa edustavat siis Vuonna salatekstiin ja Z B. Se voi auttaa nähdäksesi Caesar Cypher kuten jatkuva aakkoset pyörä. Salaamaan niiden tekstiä, käyttäjä tulee kaksi argumenttia osaksi komentoriviltä - . / Caesar jälkeen näppäintä. Kuten aina, me emme voi luottaa käyttäjän täysin syöttää tulo, jotka tekevät järkevää ohjelmaamme. Joten meidän täytyy vahvistaa niiden komentoriviltä tulo. Sen sijaan käyttää int main mitätön, olemme käyttäen int main, int argc, merkkijono argv. Kokonaisluku muuttuja argc edustaa argumenttien määrä johdetaan komentoriviltä. Ja argv on array, tai ajattele sitä luetteloon, argumenttien sisään Joten Caesar, miten voimme vahvistaa käyttäjän panos? No, ne pitäisi vain olla pääsy kaksi komentoriviargumentteja - . / Caesar ja avain. Joten jos argc ei ole 2, mikä tarkoittaa, että he joko unohtivat avain ja vain tuli. / caesar, tai ne tuli useita avaimia. Jos näin on, Tulet haluat tulostaa ohjeet ja sulje ohjelma. Ne täytyy yrittää uudelleen komentoriviltä. Mutta vaikka argc on 2, sinun täytyy tarkistaa, ovatko ne antaa sinulle asianmukaista näppäintä. Caesar, tarvitset kokonaisluku. Mutta argv on Merkkijonotaulukko. Miten päästä että avain? Nopea silmäys paneelit - tietorakenteita, jotka pitävät useita arvot samaa tietotyyppiä. Merkinnät ovat nolla-indeksoitu, mikä tarkoittaa, että Ensimmäinen tekijä on indeksi nolla ja viimeinen osa on indeksi koko miinus 1, jossa koko on määrä elementtejä jono. Jos minä julisti uuden string array postilaatikko pituus 3, visuaalisesti, se näyttää tältä. Kolme konttia jousille , Vierekkäin. Voit käyttää mitä tahansa elementti, kirjoitat nimen ja array ja ilmoittaa sitten indeksin hakasuluissa. Täällä olen arvon määrityksessä kunkin elementti, aivan kuten tekisin mitään muut merkkijonomuuttuja. Joten pääsevän komentoriviargumentteja, meidän täytyy tehdä, on saada oikea osa argv array. Jos käyttäjä kirjoittaa. / Blastoff Team Raketti terminaaliin, argv 0 olisi olla. / blastoff. argv olisi Team, ja arg2 olisi raketti. Nyt voimme käyttää keskeisiä, meidän pitää vielä Varmista, että se on oikein. Meidän täytyy muuntaa sen kokonaisluku. Mutta emme voi vain heittää kuten olemme tehneet aiemmin. Onneksi Y-toiminto huolehtii Tämän meille ja jopa palauttaa 0 jos merkkijono ei voi muuntaa osaksi kokonaisluku. Se on sinun, vaikka kertoa Käyttäjä miksi et anna ohjelman jatkaa. Tulos tallennetaan ja Y kokonaisluku, ja sinulla on avain. Seuraava osa on yksinkertainen. Pyydä käyttäjän niiden pelkkää tekstiä, joka on tietojen muotoilumerkkijonossa. Onneksemme kaikki käyttäjän syöttämää jouset ovat voimassa. Nyt meillä on kaikki tarvittavat tiedot käyttäjältä, on aika meille salaamaan niiden viesti. Käsite Caesar on yksinkertainen riitä ymmärtämään. Mutta miten tietokone tietää, mikä kirjaimet tulevat peräkkäin? Tässä kun ASCII taulukon tulee sisään Jokaisella hahmolla on kokonaisluku määrä liittyy siihen. Capital on 65 vuotta. Capital B on 66. Pienet on 97. Pieniä b on 98. Mutta merkit eivät rajoitu vain aakkosellinen numeroita. Esimerkiksi @ symboli on ASCII numero 64. Ennen kuin käsittelen koko jono, kuvitellaan meidän täytyy vain siirtää yksi merkki. No, me vain haluamme siirtää todellisen kirjaimet pelkkää tekstiä, ei merkkejä tai numeroita. Joten ensimmäinen asia, että me haluamme tarkistaa, onko merkki on aakkoset. Toiminto isalpha tekee tämän meitä ja palauttaa Boolen - totta, jos merkkejä on kirjain, false jos toisin. Kaksi muuta hyödyllisiä toimintoja ovat isupper ja islower kanssa itsestäänselvyyksiä nimiä. He palaavat totta, jos annetaan merkki on isoja tai pieniä, vastaavasti. Koska ne ovat booleans, he hyödyllistä käyttää olosuhteissa. Jos isalpha palauttaa true, sinun siirtää, että merkin näppäintä. Joten avoin ASCIIMath ja tehdä joitakin ASCII matematiikka. Käyttö on hyvin samanlainen käyttö Caesar ja vie avaimen komentoriviltä. Jos juoksen ASCIIMath 5, se näyttää lisäävän 5, annoitte minulle kirjeen f ja näyttää ASCII-arvo. Joten katsomaan ohjelmaa. Saatat ihmetellä, täällä, miksi kirjain on kokonaisluku, kun se on selkeästi, hyvin, kirjeen. On käynyt ilmi, että merkit ja kokonaisluvut ovat vaihdettavissa. Tuomalla kirjeen yhden lainausmerkkejä, kokonaisluku voidaan tallentaa ASCII-arvo pääoman A. Ole varovainen, vaikka. Tarvitset yhden vaatteita. Ilman yhden lainausmerkit, kääntäjä olisi etsittävä muuttujan nimetty, eikä luonnetta. Sitten lisään kirjeen ja avaimen, tallentamiseen summa int muuttujia tulos. Vaikka tulos on tietotyyppi kokonaisluku, minun printf selvitys käyttää % C paikanvaraaja merkkiä. Niin ohjelma tulostaa merkki liittyvä kokonaisluku tulos. Ja koska me painettu kokonaisluku muodossa sekä käyttämällä% d, näemme numero samoin. Nyt voit nähdä, että olemme hoitoon merkkiä ja kokonaislukuja, ja päinvastoin. Katsotaanpa testi ulos ASCIIMath muutaman kertaa käyttäen 25 keskeisenä. Saamme kirjain z. Nyt yritämme 26. Haluamme saada kirjeen, mutta sijaan saamme vasen kiinnike. Joten tietenkin vain lisäämällä avain kirjain ei tee. Meidän täytyy selvittää kaava paketoida noin aakkoset, kuten meidän Esimerkiksi alussa teki. Kaava Caesarin muutos on seuraava. c vastaa p plus k modulo 26. Muista, että modulo on hyödyllinen toimintaa, joka antaa meille loput jakamalla yhden numeron muut. Katsotaanpa soveltaa tätä kaavaa tavallinen tekstiä kirjeen keskeisiä 2. ASCII-arvo y on 89, joka antaa meille 91 modulo 26, mikä vastaa 13 - todellakaan ole ASCII-arvo a, joka on 67. Huumori minua nyt ja siirtyä pois ASCII arvot aakkosellinen hakemisto jossa on nolla ja Z on 25, siten, että Y on 24. 24 plus 2, modulo 6, antaa meille 26, modulo 26, 0, joka on aakkosellinen hakemisto. Joten tämä kaava näyttää soveltaa aakkosellinen hakemisto ja kirjaimen ei sen ASCII-arvo. Mutta aloitat ASCII-arvot. Ja tulostaa salakieli luonnetta, sinun sen ASCII-arvo samoin. Se on sinun, sitten selvittää miten vaihtaa edestakaisin. Kun selvittää oikean kaavan yhden merkin, sinun ei tarvitse tehdä on soveltaa samaa kaavaa jokaiselle kirjeen tekstimuodossa - ainoastaan, jos tämä kirje on aakkosjärjestyksessä, tietenkin. Ja muista, että sinun täytyy säilyttää tapauksessa ylempi tai alempi, sinne isupper ja isLower toiminnot aiemmin mainittiin tulee kätevä. Saatat olla kaksi kaavat - yksi isoja kirjaimia ja yksi pieniä. Joten isupper isLower auttaa sinua mitkä kaava hakea. Miten haet kaava jokaiselle yhden merkin merkkijono? No, merkkijono on vain joukko merkkiä. Joten voit käyttää kunkin merkin ryhmittely yli jokaisen merkin merkkijono silmukka. Kuten kunnon varten silmukka, toiminnon strlen, jousikvartetille pituus, on kätevää. Se vie narua tulo-ja palauttaa pituus merkkijonon. Varmista, että myös oikea kirjasto käyttää merkkijonon pituus toimintoa. Ja siellä sinulla on salakieli. Nimeni on Zamyla. Ja [puhutaan CODE].