ROB BOWDEN: Hej, jag är Rob. Och när i Rom, låt oss program som romarna gör. Så, första vi behöver göra är att kontroll att se till att användaren faktiskt kommer in det nummer som vi vill rotera varje karaktär genom att på kommandoraden. Så kontrollerar vi. Är argc lika med 2? Om det inte innebär att användaren antingen inte ange numret på den kommandoraden eller de in för många saker på kommandoraden, där fall vi inte vet vad de ska göra med resten av sakerna. Så, så länge som argc var två, kan vi fortsätta med resten av programmet. Nu, kom ihåg att argv 1 är alltid en sträng. Men vi vill behandla det som ett heltal. Så använder vi atoi funktion som är Ovannämnda p uppsättning spec att omvandla sträng argv 1 till ett heltal, och vi lagrar det i nyckeln. Vi vill se till att heltal som angavs är inte negativt. Och om det var, vi vill skriva ut det till användaren om att de inte är tillåtna att göra det, och återvänder. Så, nu har vi ett giltigt tal från användaren. Men vi måste få en sträng från användare som vi vill kryptera. Så vi brukade göra-while-slinga och använda få snöre för att få den här strängen från användaren, och fortsätter att få strängen tills de faktiskt Ange en giltig sträng. När vi har den strängen, vi kan gå på för att kryptera den. Så, är det för loop gör att kryptering. Lägg märke till att vi iterera från i är lika med 0 t ända upp till i är lika med n, där n är definierad som längden av vårt budskap, där budskapet är att sträng som användaren angett. Så vi iterera över alla tecken i strängen. Och om ett tecken är versaler, då vi ska flytta det med hjälp av denna formel, som vi ska komma till i en sekund. Och om det var gemener, sedan vi ska flytta den med detta är mycket liknande formel. Och om det var varken en versal eller en liten bokstav - till exempel det kan vara ett nummer eller en symbol - då vi kommer inte att göra något för det. Så, vad är dessa formler? Nå, hur ska vi flytta tecknet A? Vi vill behandla tecknet A som antalet 0. Och vi vill behandla tecknet B som antalet 1, och så vidare. Det är den nollte och första tecknen i alfabetet och så vidare. Så här är budskapet i minus A förment att ge oss den numeriska platsen för bokstav i alfabetet. Så om budskapet i är A, detta kommer att ge oss 0. Nu vill vi lägga till att den nummer som användaren vill rotera bokstav. Så, om de kom in 3 och sedan om meddelandet Jag var A, kommer detta att ge oss 0 och plus nyckel kommer att ge oss 3. Så nu överväger vi den tredje plats i alfabetet. Vi får se varför vi behöver mod av num bokstäver i en sekund. Men slutligen, vill vi att lägga på den avslutar A igen för att flytta oss tillbaka in i ASCII-värden för dessa tecken i stället för de numeriska ställen i alfabet av dessa tecken. Så, varför vi mod genom num bokstäver? Kom ihåg att vi vill att linda runt från slutet av alfabetet till början av alfabetet. Så om användaren hade angett Z, sedan subtrahera A från det kommer att ge oss 25. Och om nyckeln var 3, då vi kommer att ha 28. Men Z skulle linda runt till ABC, så 28 mod num bokstäver, som är hash definierade som 26 kan förväntas, kommer att ge oss 2, där C är den andra bokstaven i alfabetet, om du kommer ihåg att A är den nollte bokstav i alfabetet. Så det är därför vi måste mod genom num bokstäver. Nu måste vi göra exakt samma sak för små bokstäver, utom kom ihåg att när vi har att göra med gemener, de har olika ASCII-värden. Och så måste vi dra ifrån och lägga på en att flytta ner från gemena ASCII-värden och sedan tillbaka till ursprungliga gemena ASCII-värden. Och slutligen, kommer att ge oss vår krypterat meddelande. Och till slut, vi bara skriva ut det budskapet, och det är det. Mitt namn är Rob, och var Caesar.