標題:愷撒加密術
時間限制: 1000 ms 內存限制: 65536 KB
【題目描述】
加密術最早應用於古代戰爭。古羅馬時期,凱撒大帝曾是使用密碼來傳遞信息,它是一種替代密碼,對於信中的每個字母,會用它後面第i給字母代替。試編一個程序,將輸入的一段英文字符加密後輸出,只加密字母,加密的規則是用字母后來的第1個字母代替用來的字母,即用’b’代替’a’,用’c’代替’b’,······,用’a’代替’z’。
【輸入】
一行字符串。
【輸出】
加密後的字符串。
【輸入樣例】
Nike is excellent!
【輸出樣例】
Ojlf jt fydfmmfou!
【題解】
這道題目首先要求包含空格去輸入字符串或者字符數組。
完成輸入之後遍歷整個字符串,如果對應索引下的字符是字母,在進行判斷是大寫字符還是小寫字符,之後在進行判斷是不是Z或者z。
可以對原有字符串進行修改也可以新建一個字符串進行存儲。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
string s,ans; //定義字符串
getline(cin,s); //含空格輸入一行字符串
for(int i=0;i<s.length();i++){
char c = s[i];
if(isalpha(c)){ //判斷是否爲字母
if(isupper(c)){ //判斷是否大寫字母
if(c>='Z'){ //判斷是否爲‘Z’
c='A';
}else{
c=c+1;
}
}else{
if(c>='z'){
c='a';
}else{
c=c+1;
}
}
}
ans+=c;
}
cout<<ans;
}