注册 登录
编程论坛 C# 论坛

字符串加密,自己做了,但总有问题

仓乃梦 发布于 2016-10-03 12:02, 2403 次点击
字符串加密:给定一个字符串(以回车符 ‘\n’ 作为输入结束),对字符串中的每一个字符进行加密,生成密文。加密规则如下:若字符为字母,则用该字母之后的第2个字母进行替换,如:字母‘A’由字母‘C’替换(注意:字母‘Z’的下一个字母为字母‘A’);小写字母与大写字母的替换规则一样;若字符为数字,则用该数字之后的第3个数字进行替换,如:数字‘0’由数字‘3’替换(注意:数字‘9’的下一个数字为数字‘0’);其他字符不进行替换。最后输出加密后的字符串。
例如:输入:Hello3?#@Xyz89     输出:Jgnnq6?#@Zab12


谢谢
3 回复
#2
y112016-10-06 00:24
替换过后又有替换
#3
yhlvht2016-10-07 10:37
程序代码:
class program
    {
        public static void Main(string[] args)
        {

            string str = aa("Hello3?#@Xyz89");
            Console.WriteLine(str);
            Console.ReadKey();
        }

        public static string aa(string str)
        {
            char[] arrChar = str.ToCharArray();
            for (int i = 0; i < arrChar.Length; i++)
            {
                if (65 <= arrChar[i] && arrChar[i] <= 90)
                {
                    int j = arrChar[i] + 2;
                    if (j > 90)
                    {
                        j -= 26;
                    }
                    arrChar[i] = (char)j;
                }
                else if (97 <= arrChar[i] && arrChar[i] <= 122)
                {
                    int k = arrChar[i] + 2;
                    if (k > 122)
                    {
                        k -= 26;
                    }
                    arrChar[i] = (char)k;
                }
                else if (48 <= arrChar[i] && arrChar[i] <= 57)
                {
                    int n = arrChar[i] + 3;
                    if (n > 57)
                    {
                        n -= 10;
                    }
                    arrChar[i] = (char)n;
                }
            }
            return new string(arrChar);
        }
    }
#4
仓乃梦2016-10-09 20:22
谢谢1楼同学,2楼的版主。版主的答案很管用
1