C# 我正在尝试新命令,如Indexof(),但遇到了问题
嘿,我对C#还是个新手,我不明白为什么我现在会出错。我写了这个代码来获取一个字符串,并将每个字符在字母表中上移三位。现在,它只返回相同的字符串,但我希望它返回字符串的加密版本C# 我正在尝试新命令,如Indexof(),但遇到了问题,c#,string,C#,String,嘿,我对C#还是个新手,我不明白为什么我现在会出错。我写了这个代码来获取一个字符串,并将每个字符在字母表中上移三位。现在,它只返回相同的字符串,但我希望它返回字符串的加密版本 namespace Cipher { class Program { static void Main(string[] args) { string abc = "abcdefghijklmnopqrstuvwxyz";
namespace Cipher
{
class Program
{
static void Main(string[] args)
{
string abc = "abcdefghijklmnopqrstuvwxyz";
Console.WriteLine("Type in something you want to encrypt, using only lowercase letters.");
string s = Console.ReadLine();
for (int i = 0; i == (s.Length - 1); i++)
{
string a = s.Substring(i, 1);
int x = abc.IndexOf(a, 0, (abc.Length - 1));
x = x + 3;
if (x >= s.Length)
{
x = x - s.Length;
}
string b = s.Substring(x, 1);
s = s.Replace(a, b);
}
Console.WriteLine(s);
Console.ReadKey();
}
}
}
纠正for循环条件。此外,您的程序也有索引外错误。 你能详细说明你尝试的加密算法吗
string abc = "abcdefghijklmnopqrstuvwxyz";
Console.WriteLine("Type in something you want to encrypt, using only lowercase letters.");
var s = Console.ReadLine();
if(s == null) return;
for (var i = 0; i < s.Length; i++)
{
var a = s.Substring(i, 1);
var x = abc.IndexOf(a, 0, abc.Length - 1, StringComparison.Ordinal);
x = x + 3;
if (x >= s.Length)
{
x = x - s.Length;
}
var b = s.Substring(x, 1);
s = s.Replace(a, b);
}
Console.WriteLine(s);
Console.ReadKey();
string abc=“abcdefghijklmnopqrstuvxyz”;
WriteLine(“键入您想要加密的内容,只使用小写字母。”);
var s=Console.ReadLine();
如果(s==null)返回;
对于(变量i=0;i=s.Length)
{
x=x-s.长度;
}
var b=s.子串(x,1);
s=s。替换(a,b);
}
控制台。写入线(s);
Console.ReadKey();
您的循环条件错误。在for循环中使用change==
到这是学习使用调试器的好时机。您可以逐行遍历程序,这样您就可以看到循环只执行一次。它可以帮助洛蒂加密用户的输入,使每个字母在字母表中上升三位。例如abc=def,yes=bhv,等等。我尝试了你的代码,它返回了同样的结果。另外,我不太理解“StringComparison.Ordinal”,在“abc”变量的字符串中查找“a”的索引时,它使用搜索算法。“compare with Ordinal”表示它将与“abc”的每个字符的原始字节表示形式进行比较