Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有一个函数可以忽略像'á''é''ó''&#x';和'ú';?_C# - Fatal编程技术网

C# 是否有一个函数可以忽略像'á''é''ó''&#x';和'ú';?

C# 是否有一个函数可以忽略像'á''é''ó''&#x';和'ú';?,c#,C#,我在做一个凯撒密码和解密,我需要忽略字符串中的字母:“áéóíú”,因为我们也需要用西班牙语对文本进行加密,有没有什么功能可以忽略这些字母,或者有什么方法可以在密码中更改它们,并且仍然在解密中工作 private char cipher(char ch, int key) { if (!char.IsLetter(ch)) { return ch; }

我在做一个凯撒密码和解密,我需要忽略字符串中的字母:“áéóíú”,因为我们也需要用西班牙语对文本进行加密,有没有什么功能可以忽略这些字母,或者有什么方法可以在密码中更改它们,并且仍然在解密中工作

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”
时,我会再次得到
“wéts”

当然,这是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);
}
private char密码(char-ch,int-key)
{
if(char<'A'| | char>'z'|(char>'z'&&char<'A'))
{
返回ch;
}
char d=char.IsUpper(ch)?'A':'A';
返回(char)((ch+key)-d)%26)+d);
}

这看起来像是26个字符(拉丁?)字母表上的模运算——如果接受的字符数超过26个,那么这显然是行不通的。教你的系统了解其他字符。哦,谢谢,这对这个项目很有用,谢谢