>> Ebből: Szia, én vagyok Rob, és hagyja, hogy a megfejtés A Vigenère programot.
Tehát az első dolog, amit meg kell tennie, hogy arról, hogy a felhasználó által megadott, amit vártunk
őket, hogy a parancssorban.
Tehát, ha argc nem 2 azt jelenti, hogy vagy a felhasználó nem adja meg a húr is
akarjuk, hogy a mint a mi titkosítási szöveg, vagy
lépett túl sok mindent.
És nem tudom, mit tegyek azokkal más dolog.
>> Szóval mondd el nekik, mit kellett volna be.
És vissza.
Nos, feltételezve, hogy argc volt 2, tudjuk folytassa a többi programot.
>> Mi alias nevét argv [1]
a változó kulcsszó.
Így, hogy nem kell használja a nevét argv [1]
az egész a többi a program.
És talán akkor felejtsd el, amit ez azt jelenti, és így tovább.
Kulcsszó sokkal szebb nevet.
És mi azonnal megragad hosszát A kulcsszó itt.
>> OK, így most szeretnénk ellenőrizni, hogy a kulcsszó valóban érvényes-e.
A kulcsszó használjuk titkosítja húrok kell csak ábécé
karaktereket.
Ha a felhasználó által megadott non-ábécé karakter, azt kell mondani, kulcsszó
kell, csak olyan A-tól Z, majd vissza.
Tehát ez a for ciklus végigmegy az összes karaktereiből kulcsszó, ellenőrző
hogy ha valaki nem abc, akkor meg kell nyomtatni, hogy figyelmeztetés.
>> Most, ha egyszer eljutunk ezen a ponton, tudjuk, hogy a húr helyesnek kell lennie.
A kulcsszó helyesnek kell lennie.
És most ki kell, hogy az üzenetet a felhasználó számára, hogy azt akarják, hogy
titkosítani az, hogy a legfontosabb mondat.
Tehát, hogy ezt az üzenetet, hogy van egy do while ciklus, ami fog
folyamatosan kap egy karakterláncot a felhasználó amíg azok meg egy érvényes karakterlánc.
>> Folytatva, amit itt látunk, ezt a változót, int nun_letters_seen.
Majd meglátjuk, hogy miért van szükség hogy a második.
De ez a for ciklus lesz iterációkhoz az i értéke 0 egészen i
értéke n, ami azt jelenti, mi iterációjával az összes lehetséges
karakterek a mi üzenetünk.
Mert azt akarjuk, hogy titkosítja az összes A karakterek a mi üzenetünk.
Így észre, mi if (isalphamessage [I] mert nem akarjuk titkosítani
karakter, amely nem ábécé.
Ha vannak szimbólumok, terek, vagy számokat, mi nem
titkosítani kívánja azokat.
>> Nos, feltételezve, hogy az ábécé, először szeretné, hogy kitaláljuk, mit
valóban szeretné titkosítani az üzenetet.
Szóval mit jelent ez?
>> Tegyük fel, hogy a legfontosabb mondat a felhasználó által megadott volt abc.
Ez az, amit használ, hogy beavatkozik.
Nos, naivan azt gondoljuk, hogy azt jelenti, hogy szeretnénk titkosítani az első karakter
a mi üzenet 0, mivel egy eszköz forgatható a karakter 0-ra.
>> Azt akarjuk, hogy titkosítja a második karakter 1, harmadik karakter 2,
A negyedik karakter 0, az ötödik 1, 2 a hatodik, és így tovább.
De ne felejtsd el, hogy szeretnénk ugrani terek és szimbólumok és számok.
Ez azt jelenti, hogy ha a felhasználó lépett hello world az üzenet
hogy akarnak titkosítani, majd szeretnénk titkosítani a h 0-
egy megfelelő, az e 1, a l, 2, l-a 0, 1 o.
Azt akarjuk, hogy hagyja ki a helyet, titkosított w 2, az o 0, 1, 2, 0.
Tehát észre, ha nem kimarad a helyet, akkor mi lett volna a titkosított
a w 0-val és végül a a hibás szöveg.
>> OK, ez az, amire szükségünk van a változó num_letters_seen számára.
Ha mi csak lesz titkosítani a ez a módszer, amely nem hagyja
szimbólumok, terek, és a számok, akkor Lehet, hogy csak használja az i változó, mint amit
az index a kulcsfontosságú mondatot.
Meg kell használni num_letters_seen tartani követni a tényleges helyét a
legfontosabb mondat, amit szeretnénk index.
Tehát itt, ha a kulcsszó van, ha a num_letter_seen mod keyword_length, így
miért kell a mod kulcsszó hossza?
>> Nos, hello world egy jó példa.
Ha a kulcsszó volt, abc, akkor meg kell folyamatosan titkosítani egy akkor b
akkor C, majd csavarja vissza körül, a, b, c, a, b, c.
Tehát meg kell mod kulcsszó hossza annak érdekében, hogy tekerje vissza kb.
>> Tehát ha ez egy nagybetű, akkor szeretnénk titkosítani a
helyzetét, hogy a levél az ábécé, amit kap mellett csak
levonva a tőkét A. és Hasonlóképpen, a kisbetűk, mi
kap a legfontosabb, hogy szeretnénk a kivonva ki kisbetűs a.
Tehát függetlenül attól, hogy a levél A legfontosabb mondat volt a tőke-vagy
kisbetű, megyünk titkosítja az ugyanazt az összeget.
>> Most, hogy megvan a kulcs, amit itt látunk, hogy ha az üzenet azt egy nagybetűs
karakter, akkor szeretnénk számítani a pozícióját az ábécé, amely
karakter, add a kulcsot hozzá, csomagolja vissza körül, hogy ha mentünk már a
z megyünk vissza a, b, c, és így tovább.
Aztán végül, add vissza a tőke A. Tehát mi váltás vissza a [? Ascii?]
tartomány ezeket a karaktereket, hanem a numerikus pozícióját az ábécé
ezek a karakterek.
>> És nem ugyanaz a dolog a kisbetűs karakter.
Kivéve azt akarjuk kivonni ki kisbetűs a, és add vissza a
végén, kisbetűk a.
Vegyük észre, hogy num_letter_seen csak növekszik, ha az üzenet voltam
ábécé.
Így kihagyjuk terek, szimbólumok, és számok kulcsfontosságú mondatot, mert
num_letter_seen az, amit használ az index a kulcsszó.
>> Végül, a végén, most, hogy az üzenet Én nem titkosított, akkor
nyomtassa ki az üzenet i.
És ennyi.
A nevem Rob.
És ez Vigenère.
>> [MUSIC Playing]