CCF NOI1029. 資訊加密 (C++)
阿新 • • 發佈:2018-12-11
1029. 資訊加密
題目描述
在傳遞資訊的過程中,為了加密,有時需要按一定規則將文字轉換成密文傳送出去。有一種加密規則是這樣的:
- 對於字母字元,將其轉換成其後的第3個字母。例如:A→D,a→d,X→A,x→a;
- 對於非字母字元,保持不變。
現在,請你根據輸入的一行字元,輸出其對應的密碼。
輸入
輸入一個字串。
輸出
輸出加密後的字串。
樣例輸入
I(2016)love(08)China(15)!
樣例輸出
L(2016)oryh(08)Fklqd(15)!
資料範圍限制
字串長度不超過100。
C++程式碼
#include <iostream>
#include <string>
#include <cassert>
using namespace std;
int main()
{
string str;
cin >> str;
int lengthOfString = str.size();
assert(lengthOfString <= 100);
char c;
for(int i=0; i<lengthOfString; i++)
{
c = (char)str[i];
if ((c>='A' && c<='Z'))
{
switch(c)
{
case 'X': c = 'A'; break;
case 'Y': c = 'B'; break;
case 'Z': c = 'C'; break;
default : c = char(c+3); break;
}
}
else if ((c>='a' && c<='z'))
{
switch(c)
{
case 'x': c = 'a'; break;
case 'y': c = 'b'; break;
case 'z': c = 'c'; break;
default : c = char(c+3); break;
}
}
str[i] = c;
}
cout << str << endl;
return 0;
}