1.題目介紹
Time Limit: 1000 ms
Memory Limit: 256 mb
編寫加密程式,加密規則為:將所有字母轉化為該字母后的第三個字母,即A->D、B->E、C->F、......、Y->B、Z->C。小寫字母同上,其他字元不做轉化。輸入任意字串,輸出加密後的結果。
例如:輸入"I love 007",輸出"L oryh 007"
輸入輸出格式
輸入描述:
輸入一行字串,長度小於100。
輸出描述:
輸出加密之後的結果。
輸入輸出樣例
輸入樣例#:
I love 007
輸出樣例#:
L oryh 007
題目來源
華南師範大學/貴州大學機試題
2.題解
2.1 自動打表 + 字串轉換
思路
手動打表太累?直接自動打表
同時注意下cin讀到空格停止,所以這裡使用getline進行讀取!!!
程式碼
#include<bits/stdc++.h>
using namespace std;
//vector<char> lowerLetters{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
vector<char> lowerLetters(26), upperLetters(26);
int main(){
for(char ch = 'a'; ch <= 'z'; ch++){
lowerLetters[ch - 'a'] = ch;
upperLetters[ch - 'a'] = ch - 32;
}
string str;
getline(cin, str);
for(char &ch: str){
if(ch >= 'a' && ch <= 'z'){
ch = lowerLetters[(ch - 'a' + 3) % 26];
} else if(ch >= 'A' && ch <= 'Z'){
ch = upperLetters[(ch - 'A' + 3) % 26];
}
}
cout << str;
return 0;
}