簡體   English   中英

我的cipher()函數似乎不支持大寫字母

[英]My cipher() function does not seem to support uppercase letters

這是我的功能:

// Helper function for cipher()
void cipherc(char& c, int key)
{
    if (isupper(c)) {
        c -= 'A';
    } else {
        c -= 'a';
    }

    c += key;
    c %= MAX_KEY;

    if (isupper(c)) {
       c += 'A';
    } else {
        c += 'a';
    }
}

我將其設計為支持大寫字母,盡管這樣做可以。 顯然我不知道我在做什么。 如果有人可以向我展示一種更好的方法來解決此問題或解決該問題,那就太好了。 我想(希望)使函數保持不變,采用char&int並返回void

試試這樣的代碼:

   char d = isupper(c) ? 'A' : 'a';
   c -= d;
   c += key;
   c %= MAX_KEY;
   c += d;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM