1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Oi, eu sou Rob. 3 00:00:13,750 --> 00:00:17,360 E quando, em Roma, vamos programa como os romanos. 4 00:00:17,360 --> 00:00:22,280 Então, a primeira coisa que precisamos fazer é verificar para se certificar de que o usuário realmente entrou 5 00:00:22,280 --> 00:00:26,670 o número que queremos girar cada personagem, na linha de comando. 6 00:00:26,670 --> 00:00:27,740 >> Então, vamos verificar. 7 00:00:27,740 --> 00:00:30,180 É argc igual a 2? 8 00:00:30,180 --> 00:00:34,190 Se não for, isso significa que o usuário quer não insira o número no 9 00:00:34,190 --> 00:00:37,770 linha de comando ou que entraram muitos as coisas na linha de comando, em que 10 00:00:37,770 --> 00:00:40,560 caso não sabemos o que fazer com o restante das coisas. 11 00:00:40,560 --> 00:00:45,750 Então, desde que argc tinha dois anos, o que pudermos continuar com o resto do programa. 12 00:00:45,750 --> 00:00:49,610 >> Agora, lembre-se que argv 1 é sempre uma string. 13 00:00:49,610 --> 00:00:52,490 Mas queremos tratá-lo como um número inteiro. 14 00:00:52,490 --> 00:00:57,550 Então, usamos a função atoi que é conjunto p citada especificação para converter o 15 00:00:57,550 --> 00:01:02,330 corda argv 1 até um número inteiro, e nós armazenamos que em chave. 16 00:01:02,330 --> 00:01:06,050 Queremos ter certeza de que o número inteiro que foi digitado não é negativo. 17 00:01:06,050 --> 00:01:09,490 E se fosse, nós queremos que a imprimir o usuário que não tem permissão 18 00:01:09,490 --> 00:01:11,980 para fazer isso, e voltar. 19 00:01:11,980 --> 00:01:15,100 >> Então, agora temos um válido número do utilizador. 20 00:01:15,100 --> 00:01:19,780 Mas precisamos ter uma seqüência do usuário que deseja criptografar. 21 00:01:19,780 --> 00:01:25,340 Então, nós costumávamos fazer-while e usar get string para obter esta string a partir do 22 00:01:25,340 --> 00:01:29,190 usuário, e continuar recebendo corda até que eles realmente 23 00:01:29,190 --> 00:01:31,270 digite uma seqüência válida. 24 00:01:31,270 --> 00:01:34,400 >> Assim que tivermos essa string, nós pode ir para criptografá-lo. 25 00:01:34,400 --> 00:01:38,120 Então, esse loop está fazendo que a criptografia. 26 00:01:38,120 --> 00:01:43,250 Observe que estamos repetindo a partir de i é igual a 0 t todo o caminho até a I é igual 27 00:01:43,250 --> 00:01:47,790 n, em que n é definido como o comprimento de a mensagem, que a mensagem é o 28 00:01:47,790 --> 00:01:50,260 string que o usuário digitou. 29 00:01:50,260 --> 00:01:54,330 >> Então, nós estamos interagindo sobre tudo caracteres na string. 30 00:01:54,330 --> 00:01:59,740 E se um personagem é maiúscula, então vamos transferi-lo usando este 31 00:01:59,740 --> 00:02:01,860 fórmula, o que nós vamos chegar em um segundo. 32 00:02:01,860 --> 00:02:05,260 E se foi minúsculas, então vamos transferi-lo usando este é 33 00:02:05,260 --> 00:02:07,290 fórmula muito similar. 34 00:02:07,290 --> 00:02:10,850 E se isso não era nem um nem maiúscula uma letra minúscula - por exemplo, 35 00:02:10,850 --> 00:02:15,370 pode ser um número ou um símbolo -, então nós Não vamos fazer nada para isso. 36 00:02:15,370 --> 00:02:18,220 >> Então, quais são essas fórmulas? 37 00:02:18,220 --> 00:02:22,090 Bem, como é que vamos mudar o caráter A? 38 00:02:22,090 --> 00:02:27,250 Queremos tratar o personagem A medida que o número 0. 39 00:02:27,250 --> 00:02:30,710 E nós queremos tratar o personagem B, tal como o número 1, e assim por diante. 40 00:02:30,710 --> 00:02:35,170 São os personagens zero e primeiros do alfabeto e assim por diante. 41 00:02:35,170 --> 00:02:42,900 >> Então, aqui, mensagem i menos um é suposto para nos dar o lugar numérico do 42 00:02:42,900 --> 00:02:44,400 letra do alfabeto. 43 00:02:44,400 --> 00:02:48,080 Então, se a mensagem de I é um, este vai nos dar 0. 44 00:02:48,080 --> 00:02:52,880 Agora, queremos acrescentar a isso o número que o usuário deseja 45 00:02:52,880 --> 00:02:54,840 girar a carta por. 46 00:02:54,840 --> 00:03:03,280 Então, se eles entraram 3, então se a mensagem Eu era um, isso nos dará 0 e mais 47 00:03:03,280 --> 00:03:05,400 chave nos dará 3. 48 00:03:05,400 --> 00:03:09,450 >> Então, agora, estamos considerando o o terceiro lugar no alfabeto. 49 00:03:09,450 --> 00:03:12,810 Vamos ver por isso que precisamos de mod por letras núme em um segundo. 50 00:03:12,810 --> 00:03:18,700 Mas, finalmente, queremos acrescentar sobre a A terminar novamente para deslocar-nos de volta para a 51 00:03:18,700 --> 00:03:22,020 Valores ASCII para esses personagens em vez dos locais numéricos no 52 00:03:22,020 --> 00:03:24,260 alfabeto desses personagens. 53 00:03:24,260 --> 00:03:26,580 >> Então, por que nós mod por letras núme? 54 00:03:26,580 --> 00:03:29,960 Lembre-se que nós queremos envolver em torno de a partir da extremidade do alfabeto para o 55 00:03:29,960 --> 00:03:31,470 No início do alfabeto. 56 00:03:31,470 --> 00:03:38,530 Então Z se o usuário tivesse entrado, então A subtracção de que vai 57 00:03:38,530 --> 00:03:40,520 dá-nos 25. 58 00:03:40,520 --> 00:03:44,800 E se a chave foram 3, em seguida, nós vamos ter 28. 59 00:03:44,800 --> 00:03:53,000 Mas Z deve envolver em torno de ABC, então 28 letras núme mod, que é de hash definidas 60 00:03:53,000 --> 00:04:01,890 26 como seria de esperar, vai dar nos 2, onde C é a segunda carta de 61 00:04:01,890 --> 00:04:05,880 o alfabeto, se você se lembrar que A é a letra zeroth do alfabeto. 62 00:04:05,880 --> 00:04:09,210 >> Então é por isso que precisamos mod por cartas núm. 63 00:04:09,210 --> 00:04:13,540 Agora, o que precisamos fazer exatamente a mesma coisa por letras minúsculas, exceto 64 00:04:13,540 --> 00:04:17,240 lembre-se que quando estamos lidando com letras minúsculas, eles têm diferentes 65 00:04:17,240 --> 00:04:18,579 Valores ASCII. 66 00:04:18,579 --> 00:04:24,550 E por isso temos de subtrair e adicionar em uma para transferi-lo para baixo do minúsculo 67 00:04:24,550 --> 00:04:30,020 Valores ASCII e depois voltar para o valores ASCII minúsculas originais. 68 00:04:30,020 --> 00:04:33,140 >> E, finalmente, que vai nos dar nossa mensagem criptografada. 69 00:04:33,140 --> 00:04:37,780 E, no final, nós só imprimir essa mensagem, e é isso. 70 00:04:37,780 --> 00:04:39,875 Meu nome é Rob, e foi César. 71 00:04:39,875 --> 00:04:49,856