C# 根据输入int值返回大写字母表对应的字母,从A开始
时间: 2024-09-26 09:15:56 浏览: 43
在C#中,你可以创建一个函数,该函数接受一个整数作为输入,然后使用取模运算(%)来确定在英文字母表中的位置,并根据这个位置返回相应的大写字母。这里是一个简单的示例:
```csharp
using System;
public static string Get对应字母(int number)
{
if (number < 0 || number > 25) // 检查是否在字母表范围内
return "输入无效";
// A 的 ASCII 值是 65,所以我们可以用 number 对 26 取模得到大写字母表的位置
char letter = (char)(('A' + number - 1) % 26 + 'A');
return(letter.ToString());
}
```
这个函数假设输入的数字在0到25之间(因为大写字母表只有26个字母)。对于超出范围的输入,它会返回"输入无效"。
使用例子:
```csharp
Console.WriteLine(Get对应字母(1)); // 输出:A
Console.WriteLine(Get对应字母(27)); // 输出:B
Console.WriteLine(Get对应字母(-1)); // 输出:输入无效
```
相关问题
单字母替换加密方法——单表置换密码C#
单字母替换加密方法又称为单表置换密码,是一种简单的加密方法。它的加密过程是将明文中的每个字母按照一定规律替换成密文中的另一个字母。
下面是一个使用C#实现的单字母替换加密方法:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
string plaintext = "HELLO WORLD"; // 明文
string key = "QWERTYUIOPASDFGHJKLZXCVBNM"; // 密钥
string ciphertext = Encrypt(plaintext, key); // 加密
Console.WriteLine("密文:" + ciphertext);
string decrypttext = Decrypt(ciphertext, key); // 解密
Console.WriteLine("解密后明文:" + decrypttext);
Console.ReadKey();
}
// 加密函数
static string Encrypt(string plaintext, string key)
{
string ciphertext = "";
plaintext = plaintext.ToUpper(); // 将明文转换成大写
for (int i = 0; i < plaintext.Length; i++)
{
char c = plaintext[i];
if (c >= 'A' && c <= 'Z')
{
int index = c - 'A'; // 明文字母在字母表中的位置
ciphertext += key[index];
}
else
{
ciphertext += c;
}
}
return ciphertext;
}
// 解密函数
static string Decrypt(string ciphertext, string key)
{
string plaintext = "";
ciphertext = ciphertext.ToUpper(); // 将密文转换成大写
for (int i = 0; i < ciphertext.Length; i++)
{
char c = ciphertext[i];
if (c >= 'A' && c <= 'Z')
{
int index = key.IndexOf(c); // 密文字母在密钥中的位置
plaintext += (char)('A' + index);
}
else
{
plaintext += c;
}
}
return plaintext;
}
}
```
这个程序使用了一个字母表(即26个大写字母)作为明文和密文的取值范围,使用一个密钥来表示替换规律。在加密时,对于明文中的每个字母,如果是字母表中的字母,则在密钥中找到相应位置上的字母作为密文对应的字母;否则直接将该字符作为密文对应的字符。在解密时,对于密文中的每个字母,如果是密钥中的字母,则在字母表中找到相应位置上的字母作为明文对应的字母;否则直接将该字符作为明文对应的字符。
需要注意的是,密钥中的每个字母都只能出现一次,否则解密时会出现歧义。
单字母替换加密方法——单表置换密码C#假设密钥Key是BEIJINGTSINGHUA(北京清华),则由此密码构造的字符置换表为:B E I J N G T S H U A C DF K L M O P Q R V W X Y Z,则如果明文为“important” 则密文为:HDLKOQBFQ,代码
以下是使用单表置换密码进行加密和解密的 C# 代码示例:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
string plaintext = "important";
string key = "BEIJINGTSINGHUA";
string ciphertext = Encrypt(plaintext, key);
Console.WriteLine("Ciphertext: " + ciphertext);
string decryptedtext = Decrypt(ciphertext, key);
Console.WriteLine("Decryptedtext: " + decryptedtext);
}
static string Encrypt(string plaintext, string key)
{
Dictionary<char, char> table = CreateTable(key);
string ciphertext = "";
foreach (char c in plaintext.ToUpper())
{
if (table.ContainsKey(c))
{
ciphertext += table[c];
}
else
{
ciphertext += c;
}
}
return ciphertext;
}
static string Decrypt(string ciphertext, string key)
{
Dictionary<char, char> table = CreateTable(key);
string plaintext = "";
foreach (char c in ciphertext.ToUpper())
{
if (table.ContainsValue(c))
{
foreach (KeyValuePair<char, char> pair in table)
{
if (pair.Value == c)
{
plaintext += pair.Key;
}
}
}
else
{
plaintext += c;
}
}
return plaintext;
}
static Dictionary<char, char> CreateTable(string key)
{
Dictionary<char, char> table = new Dictionary<char, char>();
for (int i = 0; i < key.Length; i++)
{
char c = key[i];
if (!table.ContainsKey(c))
{
table.Add(c, (char)(65 + i));
}
}
for (char c = 'A'; c <= 'Z'; c++)
{
if (!table.ContainsKey(c))
{
table.Add(c, c);
}
}
return table;
}
}
```
输出结果为:
```
Ciphertext: HDLKOQBFQ
Decryptedtext: IMPORTANT
```
其中,`CreateTable` 函数用于根据密钥生成置换表,`Encrypt` 函数用于对明文进行加密,`Decrypt` 函数用于对密文进行解密。需要注意的是,在加密和解密时,首先将明文和密文转换为大写字母,然后再进行处理。
阅读全文