是否可以忽略“á”,“é”,“ó”,“í”和“ú”等字符?

时间:2019-10-18 18:34:04

标签: c#

我正在进行凯撒密码和解密,因此我需要忽略字符串中的这些字母:“áéóíú”,因为我们也需要使用西班牙语对文本进行加密,是否有任何功能可以忽略此字母或更改密码并仍然可以在密码中工作的方法?

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);
        }

我希望得到的结果是,如果我使用键an2输入类似"wéts"的字符串,则会得到输出"uéiy",而当我解密"uéiy"时就会得到{{1} }

1 个答案:

答案 0 :(得分:1)

当然,可以了,这是65536个字符的字母凯撒密码的实现:

private char cipher(char ch, int key)
{
  return ch + key;
}
private char decipher(char ch, int key)
{
  return ch - key;
}

或者这是一个忽略非拉丁字母的字母:

private char cipher(char ch, int key)
{
  if (char < 'A' || char > 'z' || (char > 'Z' && char < 'a'))
  {
    return ch;
  }
  char d = char.IsUpper(ch) ? 'A' : 'a';
  return (char)((((ch + key) - d) % 26) + d);
}