本帖最后由 再起来 于 2014-1-8 21:14 编辑
- /* 编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:
- ‘a’→’d’ ‘b’→’e’ ‘w’→’z’ …… ‘x’→’a’ ‘y’→’b’ ‘z’→’c’
- ‘A’→’D’ B’→’E’ ‘W’→’Z’ …… ‘X’→’A’ ‘Y’→’B’ Z’→’C’
- 对于其他字符,不进行加密。*/
- static void Main(string[] args)
- {
- Console.WriteLine("请输入一个字符串");
- string str = "";
- ConsoleKeyInfo cki;//定义一个描述按下控制台键的变量
- while (true)
- {
- cki = Console.ReadKey(true);//按下键的时候,不显示键值
- if (cki.KeyChar == '\r')//当按下enter键的时候,表示字符串已经完成输入
- {
- break;//输入完成,跳出循环
- }
- else if ((cki.KeyChar >= 65 && cki.KeyChar <= 87) || (cki.KeyChar >= 97 && cki.KeyChar <= 119))//表示按下的键是在a-w,A-W的范围
- {
- Console.Write((Convert.ToChar(cki.KeyChar + 3)));//字符加密a-d b-e...往后推三个字符
- }
- else if ((cki.KeyChar >87&& cki.KeyChar <= 91) || (cki.KeyChar > 119 && cki.KeyChar <= 122))//x-z,X-Z的字符加密
- {
- Console.Write(Convert.ToChar(cki.KeyChar + 3 - 26));
- }
- else if (cki.KeyChar != '\b')//其他字符不处理,直接输出
- {
- Console.Write(cki.KeyChar);
- }
- else//按下退格键的情况
- {
- Console.Write("\b \b");//'\b"表示光标往前挪一位,然后将光标所在的位置替换为空格,这样就删除了,然后"\b"再将光标往前挪一位,以使得下一次输入紧跟其后
- if (str.Length == 0)//如果将字符串删除完了的话,则取不到str了,因为str变量长度为0,所以继续跳到循环的开始处
- {
- continue;//跳到while循环的开始处
- }
- else
- {
- str = str.Substring(0, str.Length - 1);//截取字符串,将我们已经删除的字符舍弃掉
- continue;
- }
- }
- str += cki.KeyChar;//用字符串str变量保存我们输入的字符;
- }
- Console.WriteLine("\n\n您刚才输入的字符串为:{0}", str);//我们真正输入的字符
- Console.ReadKey();
- }
- }
复制代码 |
|