ROB BOWDEN: Oi, eu sou Rob. E quando, em Roma, vamos programa como os romanos. Então, a primeira coisa que precisamos fazer é verificar para se certificar de que o usuário realmente entrou o número que queremos girar cada personagem, na linha de comando. Então, vamos verificar. É argc igual a 2? Se não for, isso significa que o usuário quer não insira o número no linha de comando ou que entraram muitos as coisas na linha de comando, em que caso não sabemos o que fazer com o restante das coisas. Então, desde que argc tinha dois anos, o que pudermos continuar com o resto do programa. Agora, lembre-se que argv 1 é sempre uma string. Mas queremos tratá-lo como um número inteiro. Então, usamos a função atoi que é conjunto p citada especificação para converter o corda argv 1 até um número inteiro, e nós armazenamos que em chave. Queremos ter certeza de que o número inteiro que foi digitado não é negativo. E se fosse, nós queremos que a imprimir o usuário que não tem permissão para fazer isso, e voltar. Então, agora temos um válido número do utilizador. Mas precisamos ter uma seqüência do usuário que deseja criptografar. Então, nós costumávamos fazer-while e usar get string para obter esta string a partir do usuário, e continuar recebendo corda até que eles realmente digite uma seqüência válida. Assim que tivermos essa string, nós pode ir para criptografá-lo. Então, esse loop está fazendo que a criptografia. Observe que estamos repetindo a partir de i é igual a 0 t todo o caminho até a I é igual n, em que n é definido como o comprimento de a mensagem, que a mensagem é o string que o usuário digitou. Então, nós estamos interagindo sobre tudo caracteres na string. E se um personagem é maiúscula, então vamos transferi-lo usando este fórmula, o que nós vamos chegar em um segundo. E se foi minúsculas, então vamos transferi-lo usando este é fórmula muito similar. E se isso não era nem um nem maiúscula uma letra minúscula - por exemplo, pode ser um número ou um símbolo -, então nós Não vamos fazer nada para isso. Então, quais são essas fórmulas? Bem, como é que vamos mudar o caráter A? Queremos tratar o personagem A medida que o número 0. E nós queremos tratar o personagem B, tal como o número 1, e assim por diante. São os personagens zero e primeiros do alfabeto e assim por diante. Então, aqui, mensagem i menos um é suposto para nos dar o lugar numérico do letra do alfabeto. Então, se a mensagem de I é um, este vai nos dar 0. Agora, queremos acrescentar a isso o número que o usuário deseja girar a carta por. Então, se eles entraram 3, então se a mensagem Eu era um, isso nos dará 0 e mais chave nos dará 3. Então, agora, estamos considerando o o terceiro lugar no alfabeto. Vamos ver por isso que precisamos de mod por letras núme em um segundo. Mas, finalmente, queremos acrescentar sobre a A terminar novamente para deslocar-nos de volta para a Valores ASCII para esses personagens em vez dos locais numéricos no alfabeto desses personagens. Então, por que nós mod por letras núme? Lembre-se que nós queremos envolver em torno de a partir da extremidade do alfabeto para o No início do alfabeto. Então Z se o usuário tivesse entrado, então A subtracção de que vai dá-nos 25. E se a chave foram 3, em seguida, nós vamos ter 28. Mas Z deve envolver em torno de ABC, então 28 letras núme mod, que é de hash definidas 26 como seria de esperar, vai dar nos 2, onde C é a segunda carta de o alfabeto, se você se lembrar que A é a letra zeroth do alfabeto. Então é por isso que precisamos mod por cartas núm. Agora, o que precisamos fazer exatamente a mesma coisa por letras minúsculas, exceto lembre-se que quando estamos lidando com letras minúsculas, eles têm diferentes Valores ASCII. E por isso temos de subtrair e adicionar em uma para transferi-lo para baixo do minúsculo Valores ASCII e depois voltar para o valores ASCII minúsculas originais. E, finalmente, que vai nos dar nossa mensagem criptografada. E, no final, nós só imprimir essa mensagem, e é isso. Meu nome é Rob, e foi César.