ZAMYLA CHAN: Õnnitlused viimistlus oma Esimesed paar C programme. Ma tean, et sinu esimene Tuhoamisretki C süntaks võib olla heidutav. Aga ma kinnitan teile, et aasta lõpus Muidugi, sa pead suutma vaadata Esimesed paar ülesanded ja täitma neid minutit. Nüüd, kui sa oled teinud rohkem kursis süntaksi, lähme Caesar. In Caesar, kasutaja esitama täisarv võti käsurea argument, siis sisestage tavaline tekstsõnumi käsureale. Programm siis encipher tekst ja trükkimine nende ciphertext sõnum. Enciphering jaoks Caesar on üsna lihtne. Shift iga täht, nende lihttekstina poolt võtmega. Selle tulemusena, see on ka üsna ebakindel. Aga rakendatakse Caesar tutvustab meil ASCIIMath ja array andmed struktuure. Me jõuame keerulisem ciphers hiljem. Mis Caesar võti 2 kirja sisse lihtteksti oleks esindatud täht C ciphertext sest C on kaks tähte pärast A. B oleks esindab D ja C E. suunas lõpuks tähestikku, W on esindab Y ja X Z. Aga Y ei ole kahe tähe peale, nii ciphers murtakse tähestikku. Y lihttekstina Seega esindab Aastal ciphertext ja Z B. See võib aitavad vaadata Caesar Cypher nagu pidev tähestik ratast. Encipher oma teksti, kasutaja alustavad kaks argumenti käsureale käsu - . / Caesar järgneb võti. Nagu alati, me ei saa usaldada kasutaja täiesti sisestada sisend, mis muudavad mõttes meie programm. Seega me peame kinnitama oma käsurealt sisestada. Selle asemel, et int main tühine, me oleme kasutades int main, int argc, string argv. Täisarv muutuja argc esindab argumentide arv läks käsurealt. Ja argv on massiiv või mõelda seda nimekirja ning argumentide sisse Nii Caesar, kuidas me kinnitada kasutaja sisend? Noh, nad peaksid ainult sisenemist kaks käsurea argumente - . / Caesar ja võti. Nii et kui argc ei ole 2, mis tähendab, et nad kas unustasid võti ja lihtsalt sisestatud. / caesar, või nad sisestada mitu võtmed. Kui see on nii, siis saate soovite printida juhiseid ja sulgege programm. Nad peavad uuesti proovida käsurealt. Aga isegi kui argc on 2, saate tuleb kontrollida, kas nad teile kehtiv võti. Caesari, peate täisarv. Aga argv on massiivi stringe. Kuidas pääseda, et võti? Kiire pilk massiivid - andmestruktuurid et olla mitmeid väärtusi sama andmetüüp. Sissekanded on null indekseeritud, mis tähendab, et Esimene element on indeks nulli ja viimane element on indeks suurus miinus 1, kui suurus on arvu massiivi elementide. Kui ma kuulutatud uus string array postkast pikkus 3, visuaalselt, see näeb välja selline. Kolm konteinerid stringid Kõrvuti. Et pääseda mis tahes element, siis sisesta nimi on massiiv ja seejärel osuta indeks nurksulgudes. Siin ma väärtustamise iga element, nagu ma teeksin ükskõik muu string muutuja. Nii et juurdepääs meie käsurea argumente, kõik me peame tegema, on juurdepääs õige element argv massiivi. Kui kasutaja on sisenenud. / Blastoff Team Rocket terminali, argv 0 oleks olema. / blastoff. argv oleks Team, ja arg2 oleks raketi. Nüüd, kui meil on juurdepääs meie võti, meil on vaja veel teha kindel, et see on õige. Meil on vaja muuta selle täisarv. Kuid me ei saa lihtsalt valatud nagu me oleme teinud varem. Õnneks Y funktsioon hoolitseb Selle eest meid ja isegi tagasi 0 kui string ei saa ümber arvesse täisarv. See on kuni teile, aga öelda kasutaja miks sa ei lasta programmi edasi. Hoida tulemus, et Y täisarv, ja et teil on oma võti. Järgmine osa on lihtne. Küsib kasutaja oma lihttekstina mis on andmete tüüpi string. Õnneks kõik kasutaja sisestanud stringid on kehtivad. Nüüd, kui meil kõik vajalik sisend kasutaja, see on meil aeg encipher oma sõnum. Mõiste Caesar on lihtne piisavalt aru. Aga kuidas arvuti teada, millised tähed tulevad üksteise järel? Siin, kus ASCII tabelis on sisse Igal tegelasel on täisarv number on seostatud sellega. Capital on 65. Capital B on 66. Väiketähed on 97. Väiketähed b on 98. Aga märgid ei ole piiratud lihtsalt tähestiku numbrid. Näiteks @ sümbol on ASCII number 64. Enne tegeleb terve rida, oletame, me lihtsalt peame muutma üks märk. Noh, me ainult tahame minna tegelik tähed lihttekstina ei märgid või numbrid. Nii et esimene asi, mida me tahame vaadata, kas märk on tähestikku. Funktsioon isalpha teeb seda meile ja tagastab Boolean - tõsi, kui tegelased on kirjas, false kui teisiti. Kaks muud kasulikud funktsioonid isupper ja islower koos iseenesestmõistetavad nimed. Nad tagasi true, kui antud märk on suur-või väiketähed, võrra. Kuna need on tõeväärtused, need on kasulik kasutada nagu tingimustel. Kui isalpha tagastab tõsi, peate nihutada, et märk, mille võti. Niisiis olgem avatud ASCIIMath ja teha mõned ASCII matemaatikat. Kasutamine on väga sarnane kasutus jaoks Caesar ja võtab klahvi käsurida. Kui ma saan ASCIIMath 5, tundub, et lisada 5, mis annab mulle kirja f, ning väljapanek ASCII väärtus. Võtame pilk programmi. Sa võiks küsida, siin, miks kirjas on täisarv, kui see on selgelt, noh, kirja. Selgub, et märgid ja täisarvud on omavahel vahetatavad. Pannes kirja ühe jutumärkides täisarv saab salvestada ASCII kapitali väärtust A. Olge ettevaatlik, kuigi. Sa pead ühe riided. Ilma ühtse jutumärkideta, koostaja näeks muutuja nimega, mitte iseloomu. Siis lisan kirja ja võtme hoidmiseks summa int muutujate tulemus. Kuigi tulemus on andmete tüüp täisarv, mu printf avaldus kasutab % C kohatäide tähemärki. Nii programm prindib iseloomu seotud täisarv tulemus. Ja kuna me trükitud täisarv kujul kui ka kasutades% d, siis näeme, number samuti. Nüüd te näete, et me raviks tähemärki ja täisarvud, ja vastupidi. Olgem test välja ASCIIMath paar mitu korda, kasutades 25 kui võti. Me saame kirja z. Nüüd püüame 26. Me tahame, et saada kirja, kuid asemel saame vasak sulg. Nii et ilmselt lihtsalt lisades võti täht ei tee. Me peame välja mõtlema valemi pakkima ümber tähestikku, nagu meie Näiteks aasta alguses tegin. Valem Caesari nihe on järgmine. c võrdub p pluss k moodul 26. Pea meeles, et moodul on kasulik operatsioon, mis annab meile ülejäänud jagades üks number teise. Olgem kohaldatakse seda valemit tavaline teksti tähe klahvi 2. ASCII väärtus y on 89, mis annab meile 91 moodul 26, mis võrdub 13 - kindlasti mitte ASCII väärtus kohta, mis on 67. Huumor mind nüüd ja eemalduda ASCII väärtused tähestikregistris kus on null ja Z on 25, mis tähendab, et Y on 24. 24 pluss 2, moodul 6, annab meile 26, moodul 26, 0, mis on tähestikuline register. Nii et see valem näib kehtivat tähestikregistris kirja ja ei oma ASCII väärtus. Aga kui hakkate koos ASCII väärtused. Ja printida ciphertext iseloomu, peate selle ASCII väärtus samuti. See on kuni teile, siis, et aru saada, kuidas minna edasi ja tagasi. Kui oled nuputada õige valem üks märk, kõik mida sa pead tegema, on rakendada sama valemit iga kirja lihttekstina - ainult siis, kui seda kirja tähestikulises, muidugi. Ja pidage meeles, et teil on vaja säilitada juhul ülemist või alumist, see on kui isUpper ja isLower funktsioonid varem mainitud tulevad mugav. Te võib-olla kaks valemid - üks suurtähti ja üks väiketähti. Nii isUpper isLower aitab millist valemit kohaldama. Kuidas rakendada oma valemit iga ühe märgi string? Noh, string on vaid array tähemärki. Nii pääsete iga märk rühmitades üle iga tegelane stringi jaoks silmus. Nagu seisukorras oma jaoks silmus, funktsioon strlen, keelpilliorkestrile pikkus, mis tulevad mugav. See võtab stringi sisendiks ja tagastab pikkus, et string. Veenduge, et lisada õige raamatukogu kasutada stringi pikkus funktsiooni. Ja et teil on oma ciphertext. Minu nimi on Zamyla. Ja [räägitakse CODE].