ZAMYLA Chan: Gratulálok a befejező a első pár C programok. Tudom, hogy az első behatolás C szintaxis lehet ijesztő. De higgye el, a végén a Persze, akkor képes lesz arra, hogy nézd meg a első pár és feladatok teljesíteni, percben. Most, hogy egyre több ismerős A szintaxis, térjünk a Caesar. A Caesar, a felhasználó be fog nyújtani egy integer billentyűt a parancssor érv, majd egy sima SMS a billentyűket. A program ezután titkosítás A szöveg és a nyomtatási a rejtjelezett üzenetet. A titkosítási Caesar igen egyszerű. Shift minden betűt, azok egyszerű szöveg, a kulcs. Ennek eredményeként, ez is elég bizonytalan. De végrehajtási Caesar bemutatja bennünket ASCIIMath és array adatok szerkezetek. Mi lesz, hogy bonyolultabb ciphers később. A Caesar kulcsa 2, a betűvel sima szöveg fogja képviselni a C betű a rejtjelezett mert a C két betű után A. B lenne képviseli D és C E. felé a végén az ábécé, W jelentése Y képviseli, és az X Y: Z. De nincs két betű után, így A ciphers körbe az ábécé. Y szöveges így képviseli A a rejtjelezett, és Z a B. lehet segít, hogy megtekinthesse a Caesar Cypher mint folyamatos ábécé kerék. A titkosítás a szöveg, a felhasználó belép két érv a parancssor - . / Caesar majd egy gombot. Mint mindig, nem bízhatunk a felhasználó teljesen be input amelyek értelme a programot. Tehát mi lesz érvényesíteni a parancssorból. Ahelyett, int main érvénytelen, vagyunk a int main, int argc, string argv. Az egész változó argc képvisel az átadott argumentumok száma a a parancssorban. És az argv egy tömb, vagy gondolni rá, mint egy listát, az átadott argumentumok be Így Caesar, hogyan érvényesítse a felhasználó által megadott? Nos, csak be két parancssori paramétereket - . / Caesar és a kulcsot. Tehát ha argc nem 2, azt jelenti, hogy akkor vagy elfelejtette a kulcsot, és csak lépett. / Caesar, vagy be több kulcsot. Ha ez az eset áll fenn, akkor majd nyomtatni kívánt utasítások és lépjen ki a programból. Kell majd próbálja újra a parancssorból. De még ha argc 2, akkor ellenőrizni kell, hogy azok kapsz egy érvényes kulcsot. A Caesar, szükség van egy egész szám. De argv egy tömb a szálakat. Hogyan érheti azt a kulcsot? Egy gyors pillantás a tömbök - adatstruktúrák, hogy tartsa több értékei az azonos típusú adatokat. Bejegyzés nulla indexelt, ami azt jelenti, Az első elem az index nulla és az utolsó elem az index méretben mínusz 1, ahol a méret az a szám, elem a tömbben. Ha kijelentette, az új string array postafiók hosszúságú 3 vizuálisan, a úgy néz ki, mint ez. Három konténerek húrok , Egymás mellett. Eléréséhez olyan elem, akkor írja be a nevet A tömböt, majd jelzi, az index szögletes zárójelben. Itt vagyok egy értéket rendelünk az egyes elem, ahogy én ezt minden más string változó. Tehát, hogy elérhesse a parancssori paramétereket, csak annyit kell tennie, hogy hozzáférést jobb eleme a argv tömb. Ha a felhasználó által megadott. / Kilövés csapat Rocket a terminál, argv 0 lenne lehet. / kilövés. argv lesz csapat, és arg2 lenne rakéta. Most, hogy tudjuk elérni a legfontosabb, még mindig szükség van, hogy arról, hogy ez a helyes. Meg kell alakítani egy egész szám. De nem csak öntött, mint a tettünk korábban. Szerencsére, az A-tól Y funkció gondoskodik Ennek a számunkra, és még visszatér 0 Ha a szöveg nem lehet átalakítani egy egész szám. Ez rajtad múlik, de, hogy elmondja a felhasználó miért nem hogy a program folytatódik. Tárolja az eredménye, hogy Y egy egész, és ott van a kulcs. A következő rész egyszerű. Felhasználó megkérdezése a saját szöveges, melyik lesz az adatok string típusú. Szerencsénkre, minden felhasználói lettek megadva húrok érvényesek. Most, hogy megvan a szükséges információkat a felhasználó, akkor itt az ideje, hogy titkosítás az üzenetet. A koncepció a Caesar egyszerű ahhoz, hogy megértsék. De hogyan tudja, hogy melyik számítógép levelek jönnek egymás után? Itt, ahol az ASCII tábla jön be Minden karakter egy egész rendelkezzenek. A Capital 65. Capital B 66. Kisbetűs a 97. Kisbetűs b 98. De a karakterek nem korlátozódik hogy csak alfabetikus számokat. Például a @ szimbólumot ASCII szám 64. Mielőtt foglalkozik a teljes szöveg, tegyünk úgy, mintha csak meg kell váltani egy karaktert. Nos, mi csak szeretnénk váltani tényleges betűk a szöveges alapú, nem karaktereket vagy számokat. Tehát az első dolog, amit mi szeretnénk ellenőrizze, hogy a karakter a az ábécé. A funkció isalpha teszi ezt minket, és visszaad egy logikai - igaz, ha a karakterek egy levelet, hamis, ha egyébként. Két másik hasznos funkció isupper és islower, és magától értetődő neveket. Visszatérnek igaz, ha az adott karakter a nagybetűs vagy kisbetűs, ill. Mivel ezek Logikai, ők hasznos használni feltételek. Ha isalpha igaz értékkel tér vissza, akkor be kell váltani, hogy a karakter a gombot. Szóval nyitott ASCIIMath és némi ASCII matek. A használata nagyon hasonlít a használat A Caesar és vesz egy gombot a parancssorban. Ha futok ASCIIMath 5, úgy tűnik, hogy adjunk 5. a, hogy nekem a levelet f, és jeleníti meg ASCII értéket. Szóval vessünk egy pillantást a program. Lehet, hogy csoda, itt, miért levél egész szám, ha ez jól, jól, egy levelet. Kiderül, hogy a karakterek és egész felcserélhetők. Azzal, hogy a betű egyetlen idézőjel, az egész tárolására képes Az ASCII tőke értékét A. Legyen óvatos, mégis. Meg kell az egységes ruhát. Nélkül aposztróf jelek, a fordító nézne egy változó A megnevezett, és nem a karakter. Aztán hozzá levelet, és egy gombot, tárolása összeget a int változó eredményt. Annak ellenére, hogy az eredmény az adattípus egész, a printf kifejezést használja a % C helyőrző karaktereket. Így a program kiírja a karakter társított egész eredményt. És mivel az egész nyomtatott formában, valamint a% d, látjuk a számot is. Így most már látjuk, hogy kezelésére karakterek és egészek, és vice versa. Próbáljuk ki ASCIIMath néhány többször a 25 kulcsfontosságú. Megkapjuk a Z betű. Most megpróbáljuk 26. Azt szeretnénk, hogy a levelet egy, de ehelyett kapunk egy baloldali zárójel. Tehát nyilvánvaló, hogy csak a hozzá gombot, hogy a levél nem fog. Meg kell, hogy kitaláljuk, a képletet, hogy lezárja az egész ábécét, mint a mi Például az elején tette. A képlet a Caesar eltolódás a következő. c egyenlő p és k modulo 26. Ne feledje, hogy modulo hasznos művelet, amely megadja nekünk a maradék választóvonal egyik számot a másik. Nézzük ezt a képletet, hogy a sima szöveg betű kulccsal 2. Az ASCII értéke y 89, ami ad 91 modulo 26, amely megegyezik 13 - biztosan nem az ASCII értékét a, amely 67. Humor meg most, és mozgassa el a ASCII értékeket betűrendes index ahol A értéke nulla, és Z jelentése 25, ami azt jelenti, hogy Y jelentése 24. 24 plusz 2, modulo 6, ad 26, modulo 26, 0, ami a betűrendes indexe. Tehát ez a képlet úgy tűnik, hogy alkalmazni kell a betűrendes a levél és a nem az ASCII értékét. De kezdeni ASCII értékeket. És kinyomtatja a rejtjelezett karakter szüksége lesz az ASCII értékét is. Ez rajtad múlik, akkor, hogy kitaláljuk, hogyan kell váltani oda-vissza. Miután kitalálni a helyes képlet egy karakter, mindössze annyit kell tennie, az ugyanezt a képletet minden levél a szöveges - csak akkor, ha betű abc, természetesen. És ne feledd, hogy meg kell őrizni az ügy, felső vagy alsó, ez az, ahol A isUpper és isLower funkciók korábban említett jól jöhet. Lehet, hogy két képlet - az egyik a nagybetűket és egy kisbetűs. Így isUpper egy isLower segít melyik képletet kell alkalmazni. Hogyan kell alkalmazni a képlet minden egyetlen karaktert egy szövegben? Nos, a szöveg csak egy tömb karakter. Így érheti el minden karaktert csoportosítás mint minden karakter a karakterlánc egy for ciklus. Ami a feltétele a for ciklus, A funkció strlen, string hosszú, jól jöhet. Beletelik egy string bemeneti és hosszát adja vissza, hogy a húr. Győződjön meg róla, hogy tartalmazza a megfelelő könyvtár használja a karakterlánc hosszát funkciót. És ott van a rejtjelezett. A nevem a Zamyla. És [NYELVŰ KÓD].