ROB BOWDEN: Hi, ek is Rob. En toe in Rome, laat se program soos die Romeine. So, in die eerste ding wat ons moet doen, is om tjek om seker te maak die gebruiker eintlik ingevoer die getal wat ons wil elke draai karakter deur op die opdrag lyn. So, ons kyk. Is argc gelyk aan 2? As dit is nie, wat beteken dat die gebruiker nie nie die nommer by die voer command line of hulle het te veel dinge op die opdrag lyn, waarin geval dat ons nie weet wat om te doen met die res van die dinge. So, solank argc was twee, kan ons voort te gaan met die res van die program. Nou, onthou dat bevat SPASIES 1 is altyd 'n string. Maar ons wil dit as 'n heelgetal te behandel. So, ons gebruik die atoi funksie wat genoemde p stel spec te omskep die string bevat SPASIES 1 tot 'n heelgetal, en ons slaan wat in die sleutel. Ons wil om seker te maak dat die integriteit wat aangegaan is nie negatief. En as dit was, ons wil hê dat die druk te die gebruiker dat hulle nie toegelaat om dit te doen, en terug te keer. So, nou het ons 'n geldige nommer van die gebruiker. Maar ons moet 'n string te kry van die gebruiker wat ons wil te enkripteer. So het ons gebruik om te doen-lus en gebruik kry string hierdie string te kry van die gebruiker, en gaan voort om string totdat hulle eintlik Gee 'n geldige string. Sodra ons daardie string ons kan op om dit te enkripteer. So, is dit vir lus doen dat kodering. Let daarop dat ons iterating van i gelyk aan 0 t al die pad tot by i gelykes n, waar n word gedefinieer as die lengte van ons boodskap, waar die boodskap is die string wat die gebruiker aangegaan is. So ons iterating oor al karakters in die string. En as 'n karakter is hoofletters, dan ons gaan om dit te skuif met behulp van hierdie formule, wat ons sal kry om in 'n tweede. En as dit is klein letters, dan ons sal dit verskuif die gebruik van hierdie is baie soortgelyk formule. En as dit was nie 'n hoof-of 'n klein letter - byvoorbeeld, is dit kan 'n getal of 'n simbool wees - dan moet ons is nie van plan om iets te doen om dit te. So, wat is hierdie formules? Wel, hoe kan ons skuif die karakter A? Ons wil die karakter te behandel A as die nommer 0. En ons wil die karakter te behandel B as die nommer 1, en so aan. Dit is die nulde en die eerste karakters van die alfabet en so aan. So hier is die boodskap wat ek minus 'n veronderstelde om te gee ons die numeriese die plek van die letter in die alfabet. So as boodskap wat ek is A, hierdie gaan ons te gee 0. Nou, ons wil voeg by dat die getal wat die gebruiker wil draai die brief deur. Dus, as hulle het 3, dan as die boodskap Ek was 'n, sal hierdie gee ons 0 en plus sleutel 3 gee ons. So nou is ons die oorweging van die derde plek in die alfabet. Ons sal sien waarom ons nodig het om te mod deur num letters in 'n tweede. Maar uiteindelik, ons wil by te voeg op die 'n einde weer vir ons om terug te skuif na die ASCII waardes vir hierdie karakters in plaas van die numeriese plekke in die alfabet van hierdie karakters. So, hoekom moet ons mod deur num letters? Onthou dat ons wil hê om rond te draai van die einde van die alfabet tot die die begin van die alfabet. So as die gebruiker aangegaan het Z, dan aftrek A van wat gaan gee ons 25. En as die sleutel was 3, dan ons gaan 28 te hê. Maar Z moet rond draai te ABC, so 28 mod num letters, wat hash gedefinieer as 26 verwag word, gaan gee ons 2, waar C die tweede brief van die alfabet, as jy onthou dat A die nulde letter van die alfabet. So dit is waarom ons moet mod deur num letters. Nou moet ons die presies dieselfde ding om te doen vir klein letters, behalwe onthou dat wanneer ons te doen het met kleinletters, het hulle verskillende ASCII waardes. En so het ons nodig het om te trek en voeg op 'n om dit te skuif af van die klein ASCII waardes en dan weer terug na die oorspronklike klein ASCII waardes. En uiteindelik, sal wat ons gee ons geïnkripteer boodskap. En in die einde, het ons net uit te druk dat die boodskap, en dit is dit. My naam is Rob, en was die keiser.