>> ZAMYLA陈：恭喜 整理你的
C程序中的第一对夫妇。
我知道你的第一次进军 C语法可以艰巨。
但我向你保证，在年底 当然，你能看的
第一对夫妇的分配和 他们在几分钟内完成。
>> 现在，你越来越熟悉 语法，让我们的凯撒。
在凯撒，用户将提交 作为一个命令行的整数键
参数，然后进入一个纯 短信提示。
该方案将加密被 文本和打印
他们的密文消息。
>> 凯撒加密 其实很简单。
每个字母移位，在他们的 纯文本的关键。
其结果是，它也 相当不安全的。
但是在执行凯撒将推出 我们到ASCIIMath和数组数据
结构。
我们会得到更复杂 密码后。
随着凯撒键2，字母A 纯文本将代表
密文的字母C，因为C 后，A，B两个字母
D和C表示E.走向 字母表末尾，W是
X，Y三种由Z.不过Y表示的 没有后两个字母，所以
字母表密码环绕。
因此，Y在纯文本代表的 A的密文，和Z B.它可
帮查看凯撒徽，像 一个连续的字母轮。
>> 加密被自己的文字，用户 将进入两个参数
进入命令行模式 -
/凯撒接着是密钥。
与往常一样，我们不能信任用户 完全输入，使
意义上我们的节目。
因此，我们将不得不以验证他们的 命令行输入。
>> 使用int主要无效，而是我们 使用int为主，INT ARGC，串argv的。
整型变量的argc代表 传入的​​参数的数量
在命令行中。
和argv是一个数组，或者认为它是 列表中的参数传递进来
>> 因此，凯撒，我们怎么验证 用户的输入？
那么，他们应该只进入 两个命令行参数 -
/凯撒和一把钥匙。
因此，如果argc是2，这意味着 他们要么忘记了一个关键，只是
输入。/凯撒，或者他们 输入了多个键。
>> 如果是这样的话，那么你会 要打印的说明
退出程序。
他们将需要再次尝试 在命令行。
但是，即使argc是2，你会 需要检查他们是否
给你一个有效的密钥。
对于凯撒，你需要一个整数。
但argv是一个字符串数组。
您如何访问该键？
>> 就让我们来看看在阵列 -
数据结构有多个 值相同的数据类型。
文章索引从零开始，这意味着 第一个元素是该指数为零
最后一个元素是索引大小 减1，其中的大小是多少
数组中的元素。
>> 如果我宣布一个新的字符串数组邮箱 长度为3，在视觉上，它
看起来是这样的。
三个货柜的字符串 ，相映成趣。
要访问任何元素，你键入的名字 数组，然后指出
在方括号中的索引。
在这里，我将值分配给每个 元素，就像我会做任何
其他字符串变量。
>> 因此，访问我们的命令行参数， 所有我们需要做的是访问
正确的argv数组元素。
如果用户输入/升空队 火箭到终端中，argv 0
/升空。
argv的团队， ARG2将火箭。
>> 现在，我们可以访问我们的关键， 我们仍然需要
确保它是正确的。
我们需要将它转换成一个整数。
但我们不能只投像 我们以前做过的。
幸运的是，在A到Y函数负责 这为我们甚至返回0
如果不能转换的字符串 成一个整数。
这是给你，虽然，告诉 用户为什么你不会
让程序继续进行。
在的结果存放到Y 整数，你有你的关键。
接下来的部分是简单的。
提示用户为他们的朴素的文字， 这将是数据类型的字符串。
幸运的是，所有的用户输入 字符串都是有效的。
>> 现在我们已经有了所有必要的输入 从用户，是时候为我们
加密被他们的消息。
凯撒的概念很简单 有足够的了解。
但你的电脑是如何知道哪些 字母后另一个？
>> 这里就是ASCII表的用武之地。
每个字符都有一个整数 与它相关联的数量。
资本A是65。
资本B是66。
小写a是97。
小写b是98。
但文字并不局限于 只是字母数字。
例如，@符号 是ASCII数字64。
>> 在处理整个字符串， 让我们假装我们只是必须转移
一个字符。
好了，我们只是想转移实际 在纯文本的信件，不
字符或数字。
所以，首先，我们将要 检查字符是否是
字母表。
>> 该功能因而isalpha这 我们并返回一个布尔 -
如此，如果字符是字母， 虚假，否则。
两个其他有用的功能 isupper及islower的的，与
不言自明的名称。
他们返回true，如果给定的字符 是大写或小写，
分别
由于他们是布尔值，他们 有用的使用条件。
>> 如果返回true，因而isalpha，你需要 转移的关键字符。
所以，让我们打开ASCIIMath 并做一些ASCII数学。
用法很类似的用法 凯撒和需要的关键在
命令行。
>> 如果我运行ASCIIMath 5，这似乎增加 5，给我的一封信，F，
显示的ASCII值。
所以，让我们来看看在节目。
>> 你可能不知道，就在这里，为什么 信是一个整数，当它的
清楚，很好，一个字母。
事实证明，字符和 整数是可以互换的。
通过把字母A在单 引号，整数可以存储
资本的ASCII值 A.要小心，虽然。
您需要单一的衣服。
如果没有单引号， 编译器会寻找一个变量
命名为A，而不是字符。
>> 然后我一封信和一把钥匙，存储 int变量结果的总和。
尽管结果的数据类型为 整数，我的printf语句使用
％C字符占位符。
因此，程序打印字符 与整数结果。
因为我们打印的整数 以及使用％d的形式，我们看到
的数量为好。
所以，现在你可以看到，我们 治疗字符和
整数，反之亦然。
>> 让我们测试出ASCIIMath几 多次使用作为密钥25。
我们得到字母z。
现在我们试着26。
我们想要得到的字母a，但 相反，我们得到了一个左括号。
所以，很显然，只需添加 信的关键不会做。
我们需要找出一个公式来包装 周围的字母，喜​​欢我们
例如，在开始做了。
>> 凯撒的公式 移位如下。
Ç等于P加K模26。
请记住，模是一种有用的 操作，让我们其余
将一个由其他。
让我们套用这个公式平原 文本信2的一个关键。
y的ASCII值89， 为我们提供了模数26 91
相当于13 -
绝对不是ASCII值 的，这是67。
>> 现在我的幽默和远离 ASCII值字母索引
其中A是零和Z是25， 这意味着，Y为24。
24加2，模6，给了我们26 模26，0，这是
字母索引的。
因此，这个公式似乎适用于 字母索引信
不是其ASCII值。
>> 但你开始用ASCII值。
打印密文字符， 你需要它的ASCII值。
这是给你的，那么，要弄清楚 如何来回切换。
>> 一旦你找出正确的公式 一个字符，所有你需要做的
适用相同的公式每 纯文本的信件 -
如果这封信是按字母顺序排列的， 当然。
请记住，你需要保留 的情况下，上层或下层，这就是
的isUpper和isLower功能 前面提到会派上用场。
您可能有两个公式 ​​-
其中一个为大写字母 和一个小写。
所以isUpper一个isLower将帮助您 确定的公式来套用。
>> 你怎么到每一个应用公式 在一个字符串中的单个字符？
嗯，只是一个字符串 字符数组。
所以，你可以访问每个字符 分组在中的每个字符
在fo​​r循环中的字符串。
至于你循环的条件， strlen函数，字符串
长度，会派上用场。
这需要在一个字符串作为输入，并 返回该字符串的长度。
请一定要包括正确的库 使用字符串长度功能。
>> 你有你的密文。
我的名字Zamyla。
[汉化代码]。