ZAMYLA CHAN: Til hamingju að klára þinni Fyrsta par af C forrit. Ég veit að fyrsta skyndiárás inn C setningafræði hægt að draga kjark. En ég fullvissa þig, í lok Auðvitað, youll 'vera fær til að líta á Fyrsta par af verkefnum og ljúka þeim á augabragði. Nú þegar þú ert að fá fleiri kunnugleg með setningafræði, við skulum fá til keisarans. Í keisaranum sem notandinn verður að leggja fram heiltala lykill sem stjórn lína rök, svo inn a látlaus texti skilaboð á the hvetja. The program vilja þá encipher texta og prenta þeirra ciphertext skilaboð. The enciphering fyrir keisaranum er alveg einfalt. Shift hvert bréf, í þeirra látlaus texti, með takkanum. Þess vegna er það líka nokkuð óörugg. En innleiða Caesar mun kynna okkur að ASCIIMath og array gögn mannvirki. Við munum fá til flóknari dulmál síðar. Með Caesar lykill af 2, stafinn A í látlaus texti yrði fulltrúi bréf C í ciphertext vegna C er tveir stafir eftir A. B myndi vera fulltrúa af D og C eftir E. Undir í lok stafrófinu, W er táknað með Y, og X með Z. en Y ekki hafa tvo stafi eftir það, svo the dulmál hula kringum stafrófinu. Y í látlaus texti er þannig táknuð með A í ciphertext, og Z af B. Það kann að hjálpa til að skoða Caesar Cypher eins samfellt stafrófið hjól. Til encipher texta þeirra, notandi verður að slá tvær röksemdir í skipanalínunni - . / Caesar eftir takka. Eins og alltaf, við getum ekki treyst notanda alveg að slá inntak sem gera vit fyrir áætlun okkar. Þannig að við verðum að staðfesta þeirra stjórn lína inntak. Stað þess að nota int helstu tóm, erum við nota int helstu, int argc, band argv. The heiltölubreytu argc táknar fjölda rök liðin í stjórn lína. Og argv er fylki, eða hugsa um það sem listi, af rök liðin inn Svo fyrir keisaranum, hvernig sannreyna við notandans inntak? Jæja, ættu þeir aðeins að slá tveir stjórn lína rifrildi - . / Caesar og lykill. Svo ef argc er ekki 2, sem þýðir að þeir gleymdu annaðhvort takkann og bara slegið. / Caesar, eða þeir slegið margar lykla. Ef þetta er raunin, þá munt þú langar að prenta leiðbeiningar og hætta forritið. Þeir þurfa að reyna aftur frá the stjórn lína. En jafnvel þótt argc er 2, munt þú þarf að athuga hvort þeir gefa þér gilt takkann. Fyrir keisaranum, þú þarft heiltölu. En argv er fylki af strengjum. Hvernig fæ ég aðgang að þessi lykill? A fljótur líta á fylki - gögn uppbygging sem eiga marga gildi sömu gögn tegund. Færslur eru núll verðtryggingar, sem þýðir að Fyrsti þátturinn er vísitalan núll og síðasti þátturinn er á stærð efnisyfirlit mínus 1, þar sem stærð er fjöldi þættir í array. Ef ég lýsti nýja band array pósthólf af lengd 3, sjónrænt, það lítur svona út. Þrjár ílát fyrir strengi , Hlið við hlið. Til aðgangur allir frumefni, þú slærð inn nafnið í fylkinu og þá benda vísitalan í hornklofum. Hér er ég að gefa gildi á hverjum þáttur, rétt eins og ég myndi gera með einhverju annað band breytu. Svo til að fá aðgang stjórn lína rifrildi okkar, allt sem við þurfum að gera er að opna rétt þáttur í argv array. Ef notandinn slær inn. / BlastOff Team Rocket í flugstöðinni, argv 0 myndi vera. / BlastOff. argv væri Team og arg2 væri flugeldur. Nú þegar við getum nálgast lykilinn okkar, við þurfum samt að gera viss um að það er rétt. Við þurfum að umbreyta það inn í heiltölu. En við getum ekki bara kastað eins og við höfum gert áður. Til allrar hamingju, A til Y virka tekur standa þetta fyrir okkur og jafnvel skilar 0 ef strengur er ekki hægt að breyta í heiltala. Það er komið að þér, þó að segja notandi af hverju þú munt ekki láta forritið halda áfram. Geymið niðurstöðu A til Y in an heiltala, og þar hafið þið lykil. Í næsta hluta er einföld. Hvetja notandann til texta þeirra, sem verður af gögnum tegund band. Sem betur fer fyrir okkur, allir notandi inputted strengir eru í gildi. Nú þegar við höfum allar nauðsynlegar inntak frá notandanum, er kominn tími fyrir okkur að encipher skilaboðum þeirra. Hugmyndin um keisarans er einfalt nóg að skilja. En hvernig er tölvan þín vita hver bréf koma á eftir öðrum? Hér er þar sem ASCII töflunni kemur inn Sérhver persóna hefur heiltölu númer í tengslum við það. Capital A er 65. Capital B er 66. Lágstafir a er 97. Lágstafir b er 98. En stafir eru ekki takmörkuð að bara stafrófsröð númer. Til dæmis, the @ tákn er ASCII númer 64. Áður takast á við allt band, skulum þykjast að við verðum bara að skipta einn staf. Jæja, við viljum bara að skipta raunveruleg bréf í látlaus texti, ekki stafir eða tölur. Svo það fyrsta sem við munum vilja til athuga hvort eðli er stafrófið. Fallið isalpha gerir þetta fyrir okkur og skilar Boole - satt ef persónurnar er bréf, rangar ef annað. Tvær aðrar gagnlegar aðgerðir eru isupper og islower með sjálf-útskýringar nöfn. Þeir aftur satt ef gefið eðli er hástafi eða lágstafir, hver um sig. Þar sem þeir eru Booleans, þá eru þeir gagnlegt til að nota sem skilyrði. Ef isalpha skilar satt, þú þarft til að skipta þessi karakter með takkanum. Svo skulum opin ASCIIMath og gera sumir ASCII stærðfræði. Notkun er mjög svipuð við notkun fyrir keisaranum og tekur í takkann í stjórn lína. Ef ég keyrt ASCIIMath 5, virðist það að bæta 5 til a, að gefa mér stafinn f og sýna ASCII gildi. Þannig að við skulum taka a líta á the program. Þú gætir furða, hérna, hvers vegna bréf er heiltala, þegar það er greinilega vel, bréf. Það kemur í ljós að stafir og heiltölur eru víxlanlegur. Með því að setja stafinn A í einu gæsalöppum, talan getur geymt ASCII gildi fjármagns A. Verið varkár, þó. Þú þarft að einstaklings föt. Án einn skytta vitna, að þýðanda myndi leita breytu heitir A, og ekki eðli. Þá vil ég bæta bréf og lykill, geyma Summa í int breytur niðurstöðu. Jafnvel þó niðurstaða er af gerðinni gögn heiltala, printf yfirlýsingu mína notar % C-tákn fyrir stafi. Svo prentar forritið eðli í tengslum við heiltölu niðurstöðu. Og þar sem við prenta á heiltölu mynd eins vel með% d, sjáum við fjöldi eins vel. Svo nú er hægt að sjá að við meðhöndla stafi og heiltölur, og öfugt. Skulum prófa ASCIIMath sé nefnt fleiri sinnum með 25 sem lykill. Við fáum stafnum Z. Nú erum við að reyna 26. Við viljum fá bréf a, en staðinn fáum við vinstri krappi. Svo augljóslega, bara að bæta við lykillinn að bréf mun ekki gera. Við þurfum að reikna út formúlu til að vefja um stafrófið, eins okkar Dæmið í upphafi gerði. A uppskrift fyrir keisarans breyting er eins og hér segir. C jafngildir bls plús k modulo 26. Mundu að modulo er gagnlegt aðgerð sem gefur okkur afganginn að deila eitt númer af öðrum. Skulum beita þessari formúlu í dalinn texti bréf með lykli í 2. The ASCII gildi y er 89, sem gefur okkur 91 modulo 26, sem jafngildir 13 - örugglega ekki ASCII gildi af a, sem er 67. Húmor mig núna og fara burt frá ASCII gildi til stafrófsröð þar sem A er núll og Z er 25, sem þýðir að Y er 24. 24 plús 2, modulo 6, gefur okkur 26, modulo 26, 0, sem er stafrófsröð um a. Svo virðist þessi formúla að gilda um stafrófsröð af bréfinu og ekki þess ASCII gildi. En þú byrjar með ASCII gildi. Og til að prenta ciphertext staf, þú þarft ASCII gildi sínu eins og heilbrigður. Það er komið að þér, þá að reikna út hvernig á að skipta fram og til baka. Þegar þú reikna út rétt uppskrift fyrir einn staf, þurfum öll að gera er beita sömu formúlu til að hvert bréf í látlaus texti - ef þessi bréf er stafrófsröð, auðvitað. Og mundu að þú þarft að varðveita að ræða, efri eða neðri, það er þar The isUpper og isLower aðgerðir fyrr mun koma sér vel. Þú gætir hafa tvær formúlur - einn fyrir hástafi bréf og einn fyrir lágstafir. Svo isUpper að isLower mun hjálpa þér ákvarða hvaða uppskrift að sækja. Hvernig sækir maður um formúlu til sérhver einn staf í streng? Jæja, band er bara array af stöfum. Svo þú getur fengið aðgang hvern staf með því hópar yfir hvern staf í band í fyrir lykkja. Eins og fyrir the ástand af þinn fyrir lykkju, virka strlen, fyrir band lengd, mun koma sér vel. Það tekur í streng sem inntak og skilar lengd strengsins. Gakktu úr skugga um að rétt bókasafn til að nota lengd strengur. Og þar hafið þið ciphertext þinn. Mitt nafn er Zamyla. Og [Talandi CODE].