Проблема с шифрованием заглавной буквы c# - PullRequest
0 голосов
/ 23 апреля 2020

возникают проблемы с шифрованием заглавных букв с помощью basi c Шифровальный код шифрования в c#, они просто переводятся в символы Спасибо заранее, я написал код ниже (Ps, метки и текстовые поля в swedi sh, но надеюсь, я все равно смогу получить помощь)

Код:

private void btnkryptera_Click(object sender, EventArgs e)
{
    string vanlig = tbxnormaltext.Text;
    int bytanummer = int.Parse(tbxkryptera.Text);

    tbxkryperadtext.Text = görKryptering(vanlig, bytanummer);
}

private static string görKryptering(string ord, int nummer)
{
    char[] längd = ord.ToCharArray();

    for (int i = 0; i < längd.Length; i++)
    {
        //Separate and change letters
        char bokstav = längd[i];

        //Change letters based on which shift
        bokstav = (char)(bokstav + nummer);

        //Delete 26 on 'overflow'
        //Adds 26 on 'overflow'
        if (bokstav > 'z')
        {
            bokstav = (char)(bokstav - 26);
        }
        else if (bokstav < 'a')
        {
            bokstav = (char)(bokstav + 26);
        }

        //Then save
        längd[i] = bokstav;

    }
    return new string(längd);
}

1 Ответ

0 голосов
/ 23 апреля 2020

Строчные буквы нумеруются от 'a' == 97 до 'z' == 122. Прописные буквы от 'A' == 65 до 'Z' == 90.

Таким образом, ваш bokstav < 'a' будет обрабатывать ваши заглавные буквы и делать это неправильно.

Либо укажите кодировку c в верхнем регистре, либо используйте ToLower() для преобразования открытого текста в строчные.

...