>> 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].