ROB BOWDEN: Hoi, ik ben Rob. En wanneer je in Rome, laten we het programma zoals de Romeinen doen. Dus, het eerste wat we moeten doen is controleren om te controleren of de gebruiker daadwerkelijk ingevoerd het nummer dat we willen elke draaien karakter door op de commandoregel. Dus, we controleren. Is argc gelijk aan 2? Als het niet, dat betekent dat de gebruiker ofwel niet het nummer op de opdrachtregel of gingen ze te veel dingen op de opdrachtregel, waarbij geval dat we niet weten wat te doen de rest van de dingen. Dus, zolang argc was twee, we kunnen verder met de rest van het programma. Nu, bedenk dan dat argv 1 is altijd een string. Maar we willen om het te behandelen als een geheel getal. Dus gebruiken we de atoi functie die is genoemde p set spec om te zetten de koord argv 1 een geheel getal, en slaan we dat in de belangrijkste. We willen ervoor zorgen dat de integer die werd ingevoerd is niet negatief. En als het was, we willen drukken dat naar de gebruiker dat ze niet toegelaten om dat te doen, en terug. Zo, nu hebben we een geldige nummer van de gebruiker. Maar we moeten een string te krijgen van de gebruiker die we willen versleutelen. Dus we vroeger do-while lus en gebruiken krijgen string naar deze string te krijgen van de gebruiker, en verder krijgen snaar totdat ze daadwerkelijk Voer een geldige string. Zodra we die string, we kan gaan om het te versleutelen. Dus, is deze for-lus te doen dat encryptie. Merk op dat we itereren van i gelijk is aan 0 t helemaal tot i gelijken n, waarbij n wordt gedefinieerd als de lengte van onze boodschap, waar het bericht is de tekenreeks die de gebruiker heeft ingevoerd. Dus we itereren over alle tekens in de tekenreeks. En als er een karakter wordt in een hoofdletter, dan we gaan het verschuiven met behulp van deze formule, die we zullen krijgen om in een tweede. En als het werd in kleine letters, dan we zullen het verschuiven met behulp van dit vergelijkbaar formule. En als het was noch een hoofdletter noch een kleine letter - bijvoorbeeld het een getal of een symbool zou kunnen zijn - dan kunnen we zijn niet van plan om iets te doen aan het. Dus, wat zijn deze formules? Nou ja, hoe kunnen we verschuiven het teken A? We willen het karakter te behandelen A als het getal 0. En we willen het karakter te behandelen B als het nummer 1, enzovoorts. Het is de nulde en eerste tekens van het alfabet enzovoorts. Dus hier wordt bericht i minus een veronderstelde om ons de numerieke plaats van het geven letter in het alfabet. Dus als boodschap I is een, deze gaat om ons 0. Nu willen we toevoegen aan dat de nummer dat de gebruiker wil draai de brief door. Dus, als zij traden 3, dan als boodschap Ik was een, zal dit ons 0 geven en plus sleutel zal ons 3 geven. Dus nu zijn we gezien de derde plaats in het alfabet. We zullen zien waarom we moeten mod door num letters in een tweede. Maar uiteindelijk willen we op toe te voegen aan de end A weer om ons terug te verschuiven naar de ASCII-waarden voor deze karakters in plaats van de numerieke plaatsen in de alfabet van deze tekens. Dus, waarom hebben we mod door num brieven? Vergeet niet dat we willen wikkelen vanaf het einde van het alfabet de het begin van het alfabet. Dus als de gebruiker was binnengekomen Z, dan aftrekken van een van die gaat geven ons 25. Als de sleutel waren 3, dan we gaan moeten 28. Maar Z moet wikkelen ABC, dus 28 mod num brieven, die hash wordt gedefinieerd 26 als te verwachten, gaat geven ons 2, waarbij C de tweede brief van het alfabet, als je je herinnert dat A de nulde letter van het alfabet. Dus dat is de reden waarom we nodig hebben om mod door num brieven. Nu moeten we precies dezelfde dingen doen voor kleine letters, behalve vergeet niet dat wanneer we te maken hebben met kleine letters, ze verschillende ASCII-waarden. En dus moeten we aftrekken en voeg op een om het te verschuiven van de kleine letters ASCII-waarden en dan terug naar de originele kleine ASCII-waarden. En ten slotte, dat zal ons geven onze gecodeerd bericht. En op het einde, we gewoon uitprinten die boodschap, en dat is het. Mijn naam is Rob, en was Caesar.