Witam. Mam problem z następującym zadankiem:
Napisz program, który szyfruje podany przez użytkownika tekst prostym szyfrem podstawieniowym zwanym „gaderypoluki”. Nazwa pochodzi od jednego z najczęściej używanych kluczy GA-DE-RY-PO-LU-KI. Klucz ten zawiera pary znakowych zamienników umieszczonych między myślnikami. Litery, których nie ma w kluczu pozostawia się w szyfrowanym tekście bez zmian. Przykładowo tekst „DRZEWO” po zaszyfrowaniu ma postać „EYZDWP”.
Napisałem już częściowo program, ale mam problem z tym, że druga pętla wykonuje się tylu krotnie, ile ma znaków szyfr (szyfr.Length). Chodzi mi o to, żeby podstawieniu literki, program zwiększył zmienną "a" i analizował a później z petli drugiej przeszedł do pierwszej. Liczę na jakieś wskazówki :)
Console.WriteLine("Podaj tekst do zaszyfrowania: ");
string tekst = Console.ReadLine();
string szyfr = "GADERYPOLUKI";
string tekstSzyfr = String.Empty;
for (int a = 0; a < tekst.Length; a++)
{
for (int b = 0; b < szyfr.Length; b++)
{
if (tekst[a] == szyfr[b]) //sprawdzenie czy literka z podanego tekstu wystepuje w szyfrze.
{
int indeks = szyfr.IndexOf(szyfr[a]); //sprawdzenie indeksu literki.
if (indeks % 2 == 0) //true to wartość parzysta.
tekstSzyfr = tekstSzyfr + szyfr[indeks + 1];
else
tekstSzyfr = tekstSzyfr + szyfr[indeks - 1];
}
else
tekstSzyfr = tekstSzyfr + tekst[a];
}
}
Console.WriteLine(tekstSzyfr);
Console.ReadKey();