以i为循环变量,使用for循环语句由左至右依次将s_text的各个字符赋给ch,与s_key中对应的字符进行异或运算,并将结果添加到s_result的末尾。输出加密后的字符串。
-------------
这句不懂,不会写了,这两点给我弄蒙了。 下面是我的代码
--------------
static void Main(string[] args)
        {
            Int32 i;
            string s_text, s_key, s_result = null;
            char ch;
            Console.WriteLine("Please Put Into Former String !\n");
            s_text = Console.ReadLine();
            Console.WriteLine("Please Put Into The Secret Key :\n");
            s_key = Console.ReadLine();
            if (s_text.Length != s_key.Length)
                Console.WriteLine("The Length Of The Secret And Former String Must Be Equal!\n");
            for (i = 0; i <= s_text.Length - 1; i++)
            {
                ch = s_text[i];
                s_result[i] = Convert.ToInt32(s_text[i]) ^ Convert.ToInt32(s_key[i]);//应该是这里出错
            } 
            Console.WriteLine("加密后的字符串为:\n{0}", s_result.ToString());
        }

解决方案 »

  1.   

    差不多可以这样吧
    char[] tmp = new char[100];
    ......
    for (i = 0; i < s_text.Length;   i++) 

       tmp[i] = (char)(s_text[i] ^ s_key[i]);
    }
    s_result = new string(tmp);
    其它:如果s_text和s_key长度不同,应该让用户重新输入或者退出程序。
      

  2.   

    最后一行为什么要写成s_result.ToString()?
    s_result不就是string吗?
      

  3.   

    你直接把两个字符串,转换成ACSII码算了,然后再比较!