1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN:嗨,我是罗布。 3 00:00:13,750 --> 00:00:17,360 而当在罗马,让我们的程序 入乡随俗。 4 00:00:17,360 --> 00:00:22,280 所以,我们需要做的第一件事情就是检查 以确保用户实际进入 5 00:00:22,280 --> 00:00:26,670 我们希望每一个旋转数 字符在命令行。 6 00:00:26,670 --> 00:00:27,740 >> 所以,我们检查。 7 00:00:27,740 --> 00:00:30,180 是的argc等于2? 8 00:00:30,180 --> 00:00:34,190 如果不是的话,这意味着用户无论是 没有在输入数字 9 00:00:34,190 --> 00:00:37,770 命令行或者输入过多的 事情在命令行中,其中 10 00:00:37,770 --> 00:00:40,560 情况下,我们不知道该怎么办 与剩下的事情。 11 00:00:40,560 --> 00:00:45,750 所以,只要ARGC两岁,我们可以 继续与程序的其余部分。 12 00:00:45,750 --> 00:00:49,610 >> 现在,请记住ARGV 1始终是一个字符串。 13 00:00:49,610 --> 00:00:52,490 但是,我们希望把它当作一个整数。 14 00:00:52,490 --> 00:00:57,550 因此,我们使用atoi函数这 提及肺炎一套规范来转换 15 00:00:57,550 --> 00:01:02,330 串的argv 1为整数, 我们存储的关键。 16 00:01:02,330 --> 00:01:06,050 我们要确保整 这是输入不为负。 17 00:01:06,050 --> 00:01:09,490 如果它是,我们要打印,要 他们没被允许的用户 18 00:01:09,490 --> 00:01:11,980 要做到这一点,并返回。 19 00:01:11,980 --> 00:01:15,100 >> 所以,现在我们有一个有效的 从用户数。 20 00:01:15,100 --> 00:01:19,780 但是,我们需要从得到一个字符串 用户,我们要加密。 21 00:01:19,780 --> 00:01:25,340 所以,我们用do-whil​​e循环,并使用获得 字符串来得到这个字符串从 22 00:01:25,340 --> 00:01:29,190 用户,并继续获取字符串 直到他们真正 23 00:01:29,190 --> 00:01:31,270 输入一个有效的字符串。 24 00:01:31,270 --> 00:01:34,400 >> 一旦我们有一个字符串,我们 可以继续对它进行加密。 25 00:01:34,400 --> 00:01:38,120 所以,这个for循环是做 该加密。 26 00:01:38,120 --> 00:01:43,250 请注意,我们是从我迭代 等于0吨一路攀升到i等于 27 00:01:43,250 --> 00:01:47,790 n,其中n定义为长度 我们的消息,其中消息是 28 00:01:47,790 --> 00:01:50,260 字符串,用户输入。 29 00:01:50,260 --> 00:01:54,330 >> 因此,我们遍历所有 字符的字符串。 30 00:01:54,330 --> 00:01:59,740 如果一个字符是大写的,那么 我们将以此来转移它 31 00:01:59,740 --> 00:02:01,860 公式中,我们将 到了第二位。 32 00:02:01,860 --> 00:02:05,260 如果它是小写,然后 我们将使用这是它转移 33 00:02:05,260 --> 00:02:07,290 非常类似的公​​式。 34 00:02:07,290 --> 00:02:10,850 如果它既不是一个大写的,也不 小写字母 - 例如,它 35 00:02:10,850 --> 00:02:15,370 可以是数字或一个符号 - 然后我们 不会做任何事情来了。 36 00:02:15,370 --> 00:02:18,220 >> 那么,什么是这些公式? 37 00:02:18,220 --> 00:02:22,090 那么,我们该如何转移字符A? 38 00:02:22,090 --> 00:02:27,250 我们要正确对待字符 A为数字0。 39 00:02:27,250 --> 00:02:30,710 我们要对待的字符 B作为数1,依此类推。 40 00:02:30,710 --> 00:02:35,170 这是零和前几个字符 字母表等。 41 00:02:35,170 --> 00:02:42,900 >> 所以在这里,我的消息减去一个应该 给我们的数字的地方 42 00:02:42,900 --> 00:02:44,400 字母在字母表。 43 00:02:44,400 --> 00:02:48,080 所以,如果消息我是A,这 将会给我们0。 44 00:02:48,080 --> 00:02:52,880 现在,我们要添加到该 用户希望该数 45 00:02:52,880 --> 00:02:54,840 通过旋转字母。 46 00:02:54,840 --> 00:03:03,280 所以,如果他们进入3,那么如果消息 我是一个,这会给我们0和加 47 00:03:03,280 --> 00:03:05,400 键会给我们3。 48 00:03:05,400 --> 00:03:09,450 >> 所以,现在,我们正在考虑的 在字母表中第三位。 49 00:03:09,450 --> 00:03:12,810 我们会看到为什么我们需要国防部 在第二个民信。 50 00:03:12,810 --> 00:03:18,700 但最后,我们想对添加到 再次end一个转向我们回 51 00:03:18,700 --> 00:03:22,020 这些字符的ASCII值 而不是在该数值的地方 52 00:03:22,020 --> 00:03:24,260 字母表中的这些字符。 53 00:03:24,260 --> 00:03:26,580 >> 那么,为什么我们国防部通过民信吗? 54 00:03:26,580 --> 00:03:29,960 请记住,我们要环绕 从字母到年底 55 00:03:29,960 --> 00:03:31,470 开头的字母。 56 00:03:31,470 --> 00:03:38,530 因此,如果用户已经输入的Z,则 从减去将要 57 00:03:38,530 --> 00:03:40,520 给我们25。 58 00:03:40,520 --> 00:03:44,800 如果键是3,那么 我们将有28。 59 00:03:44,800 --> 00:03:53,000 但Ž应该环绕农行,所以28 模数的字母,这是哈希定义 60 00:03:53,000 --> 00:04:01,890 为26所料,是要给 我们2,其中C是第二个字母 61 00:04:01,890 --> 00:04:05,880 字母,如果你还记得,A是 字母表中的第零个字母。 62 00:04:05,880 --> 00:04:09,210 >> 所以这就是为什么我们需要 通过模数的字母。 63 00:04:09,210 --> 00:04:13,540 现在,我们需要做的同样的事情 为小写字母,除 64 00:04:13,540 --> 00:04:17,240 请记住,当我们正在处理 小写字母,它们有不同的 65 00:04:17,240 --> 00:04:18,579 ASCII值。 66 00:04:18,579 --> 00:04:24,550 因此,我们需要减去并添加上一个 从小写转移下来 67 00:04:24,550 --> 00:04:30,020 ASCII值,然后返回到 原来小写的ASCII值。 68 00:04:30,020 --> 00:04:33,140 >> 最后,这会给我们 我们的加密邮件。 69 00:04:33,140 --> 00:04:37,780 而在最后,我们只是打印出 该消息,这就是它。 70 00:04:37,780 --> 00:04:39,875 我的名字是罗布,并且是凯撒。 71 00:04:39,875 --> 00:04:49,856