【发布时间】:2020-02-15 18:44:42
【问题描述】:
我正在做一个凯撒密码和解密,我需要忽略字符串中的这个字母:“á é ó í ú”,因为我们也需要用西班牙语加密文本,有没有什么函数可以忽略这个字母或一个如何在密码中更改它们并且仍然在解密中工作?
private char cipher(char ch, int key)
{
if (!char.IsLetter(ch))
{
return ch;
}
char d = char.IsUpper(ch) ? 'A' : 'a';
return (char)((((ch + key) - d) % 26) + d);
}
我期望的是,如果我输入一个字符串,如:"wéts" 和一个键 an2,我会得到一个输出 "uéiy",当我破译 "uéiy" 时,我会再次得到 "wéts"
【问题讨论】:
-
这看起来像 26 个字符(拉丁语?)字母表上的模数学 - 当您接受超过 26 个字符时,这显然不起作用。教你的系统了解其他角色。
标签: c#