0
내 목표는 상자에 텍스트를 삽입하고 값을 알파벳의 이동 값으로 선택하고 암호화 된 출력을 얻는 것입니다.카이저 암호를 사용하여 텍스트 암호화 C#
저는 C#으로 시작했는데이 운동을 발견했습니다. 이것은 내가 잘못 생각한 것입니다.이 오류 메시지는 "실행되지 않을 때 'System.IndexOutOfRangeException'유형의 처리되지 않은 예외가 발생했습니다. 어디서 오류인지 알지만 문제를 해결하는 방법을 모르겠습니다. 나는 내가 뭘 잘못하고 있는지 또는 내가하는 일이 옳다는 것을 알고 싶다.
미리 감사드립니다.
private void cifrar_Click(object sender, EventArgs e)
{
string input = message.Text;
int shift = int.Parse(shifting.Text);
char[] alphabet = new char[26] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
string output_text = "";
char[] input_array = input.ToCharArray();
for (int i = 0; i < alphabet.Length; i++)
{
for (int j = 0; j < input_array.Length; j++)
{
if (input_array[j] == alphabet[i])
input_array[j] = alphabet[i + shift];
}
}
output_text = new string(input_array);
output.Text = output_text;
}
}
}
더 이상 오류 메시지를 표시하지 않지만 출력이 잘못되었습니다. 예 : 대문자 만 확인하기 때문에 시프트 값 = 2 입력 = 하이 출력 내가 갖는 = 동성 그것은 "JK" –
@DiogoCarvalho해야한다. 소문자는 수정되지 않습니다. 입력을 먼저 대문자로 변환하십시오. – NineBerry
"HI"입력을 넣더라도 출력이 잘못되었습니다. 나에게 "BA"를주고있다. 하지만 그래, 또한 입력을 변환 잊어 버린 덕분에 –