Cezar Cipher in C # - (Error Could not Convert String to Char)
Hello, I have a college exercise that you type a word and she plays the translation according to the posted shift.
If you type AB and the offset is 3 then the translation is A + 3 and B + 3 from the letters of the alphabet, getting translation: DE
For this I registered the whole alphabet, and then I look for the letter in the alphabet and I see her index in the alphabet, then I add her index with the displacement, and I look for the alphabet in the alphabet.
Can anyone fix my error or code?
Follow the code below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EXER03
{
class Program
{
static void Main(string[] args) {
//DECLARACAO DE VARIAVEIS
string letra_substituta, letra, message, traducao;
int z, indice, deslocamento;
string[] alfabeto = new string[24];
//CARREGA VETOR COM O ALFABETO
biblioteca(alfabeto);
do {
//INICIO DO WHILE ONDE PERGUNTA O VALOR DO DESLOCAMENTO E A PALAVRA
traducao = "";
Console.WriteLine("Defina o numero de deslocamento:");
deslocamento = Convert.ToInt16(Console.ReadLine());
Console.Write("Digite a palavra: \n");
message = Console.ReadLine();
for (int i = 0; i < message.Length; i++) {
//ISSO EH PRA QUANDO ACABAR Z VOLTAR PARA A
if (i <= 24) {
indice = i;
} else {
indice = i - 24;
}
//CAPTURA LETRA A SUBSTITUIR
letra=message[i];
//FAZ PESQUISA NA BIBLIOTECA E RETORNA LETRA SUBSTITUTA DA LETRA DO LOOP ATUAL
letra_substituta = pesquisa(alfabeto, indice, deslocamento);
//CONCATENA A VARIAVEL COM AS LETRAS SUBSTITUITAS
traducao += letra_substituta;
//ESCREVE NA TELA DADOS ENCONTRADOS
for (z = 0; z < alfabeto.Length;z++ ) {
if (alfabeto[z] == letra) {
indice = z;
}
}
Console.WriteLine("O indice do caracter ({0}) é {1}: ", message[i], z);
Console.WriteLine("Sua letra no alfabeto é: ({0})", letra_substituta);
Console.WriteLine("-------------------------");
}
//ESCREVE NA TELA A TRADUCAO
Console.WriteLine("-------------------------");
Console.WriteLine("Traducao: {0}", traducao);
Console.WriteLine("-------------------------");
} while (deslocamento >= 0);
Console.ReadKey();
}
//FUNCAO DE PESQUISA QUE RETORNA LETRA SUBSTITUTA
static string pesquisa(string[] alfabeto, int indice, int deslocamento) {
string r;
int x;
//ATRIBUI INDICE DA LETRA ATUAL COM A SOMA DO VALOR DO DESLOCAMENTO
x = indice + deslocamento;
r = alfabeto[x];
return r;
}
//BIBLIOTECA ONDE CADASTRA O ALFABETO NO VETOR ALFABETO
static void biblioteca(string[] alfabeto) {
alfabeto[0] = "a";
alfabeto[1] = "b";
alfabeto[2] = "c";
alfabeto[3] = "d";
alfabeto[4] = "e";
alfabeto[5] = "f";
alfabeto[6] = "g";
alfabeto[7] = "h";
alfabeto[8] = "i";
alfabeto[9] = "j";
alfabeto[10] = "k";
alfabeto[11] = "l";
alfabeto[10] = "m";
alfabeto[11] = "n";
alfabeto[12] = "o";
alfabeto[13] = "p";
alfabeto[14] = "q";
alfabeto[15] = "r";
alfabeto[16] = "s";
alfabeto[17] = "t";
alfabeto[18] = "u";
alfabeto[19] = "v";
alfabeto[20] = "x";
alfabeto[21] = "w";
alfabeto[22] = "y";
alfabeto[23] = "z";
}
}
}