ROB BOWDEN:嗨,我是罗布。 而当在罗马,让我们的程序 入乡随俗。 所以,我们需要做的第一件事情就是检查 以确保用户实际进入 我们希望每一个旋转数 字符在命令行。 所以,我们检查。 是的argc等于2? 如果不是的话,这意味着用户无论是 没有在输入数字 命令行或者输入过多的 事情在命令行中,其中 情况下,我们不知道该怎么办 与剩下的事情。 所以,只要ARGC两岁,我们可以 继续与程序的其余部分。 现在,请记住ARGV 1始终是一个字符串。 但是,我们希望把它当作一个整数。 因此,我们使用atoi函数这 提及肺炎一套规范来转换 串的argv 1为整数, 我们存储的关键。 我们要确保整 这是输入不为负。 如果它是,我们要打印,要 他们没被允许的用户 要做到这一点,并返回。 所以,现在我们有一个有效的 从用户数。 但是,我们需要从得到一个字符串 用户,我们要加密。 所以,我们用do-whil​​e循环,并使用获得 字符串来得到这个字符串从 用户,并继续获取字符串 直到他们真正 输入一个有效的字符串。 一旦我们有一个字符串,我们 可以继续对它进行加密。 所以,这个for循环是做 该加密。 请注意,我们是从我迭代 等于0吨一路攀升到i等于 n,其中n定义为长度 我们的消息,其中消息是 字符串,用户输入。 因此,我们遍历所有 字符的字符串。 如果一个字符是大写的,那么 我们将以此来转移它 公式中,我们将 到了第二位。 如果它是小写,然后 我们将使用这是它转移 非常类似的公​​式。 如果它既不是一个大写的,也不 小写字母 - 例如,它 可以是数字或一个符号 - 然后我们 不会做任何事情来了。 那么,什么是这些公式? 那么,我们该如何转移字符A? 我们要正确对待字符 A为数字0。 我们要对待的字符 B作为数1,依此类推。 这是零和前几个字符 字母表等。 所以在这里,我的消息减去一个应该 给我们的数字的地方 字母在字母表。 所以,如果消息我是A,这 将会给我们0。 现在,我们要添加到该 用户希望该数 通过旋转字母。 所以,如果他们进入3,那么如果消息 我是一个,这会给我们0和加 键会给我们3。 所以,现在,我们正在考虑的 在字母表中第三位。 我们会看到为什么我们需要国防部 在第二个民信。 但最后,我们想对添加到 再次end一个转向我们回 这些字符的ASCII值 而不是在该数值的地方 字母表中的这些字符。 那么,为什么我们国防部通过民信吗? 请记住,我们要环绕 从字母到年底 开头的字母。 因此,如果用户已经输入的Z,则 从减去将要 给我们25。 如果键是3,那么 我们将有28。 但Ž应该环绕农行,所以28 模数的字母,这是哈希定义 为26所料,是要给 我们2,其中C是第二个字母 字母,如果你还记得,A是 字母表中的第零个字母。 所以这就是为什么我们需要 通过模数的字母。 现在,我们需要做的同样的事情 为小写字母,除 请记住,当我们正在处理 小写字母,它们有不同的 ASCII值。 因此,我们需要减去并添加上一个 从小写转移下来 ASCII值,然后返回到 原来小写的ASCII值。 最后,这会给我们 我们的加密邮件。 而在最后,我们只是打印出 该消息,这就是它。 我的名字是罗布,并且是凯撒。