c++程式+解析
程式碼解析:
string s; int k;:: 宣告一個 string 變數 s 用來存放輸入的字串,一個 int 變數 k 用來存放偏移量。
getline(cin, s);:: 使用 getline 函式讀取一整行字串,並存入變數 s 中,包括空格。
cin >> k;:: 讀取一個整數到變數 k 中,用作凱薩加密的偏移量。
for(int i=0; i<s.size(); i++) { ... }:: 迴圈遍歷字串 s 中的每一個字元。
if ('A' <= s[i] && s[i] <= 'Z') { ... }:: 判斷字元 s[i] 是否為大寫字母。
s[i] = (s[i] - 'A' + k) % 26 + 'A';::
s[i] - 'A':將大寫字母轉換為0-25 的數字。
+ k:加上偏移量 k。
% 26:使用模運算來處理超出'Z' 的情況,例如Z+1 會變成 A。
+ 'A':將偏移後的數字轉換回大寫字母。
else if ('a' <= s[i] && s[i] <= 'z') { ... }:: 判斷字元 s[i] 是否為小寫字母。
s[i] = (s[i] - 'a' + k) % 26 + 'a';::
s[i] - 'a':將小寫字母轉換為0-25 的數字。
+ k:加上偏移量 k。
% 26:使用模運算來處理超出'z' 的情況,例如z+1 會變成 a。
+ 'a':將偏移後的數字轉換回小寫字母。
cout << s << endl;:: 輸出加密後的字串 s,並換行。