文章
36
粉丝
505
获赞
103
访问
383.4k
这个加密方法其实就是历史中经典的恺撒密码
getline(cin,s)用来读取一行的输入,头文件<string>
如果在句子中遇到A到Z或者a到z的字符那么就将它转换
重点在于怎么转换:
s[i] = (s[i] - 'A' + 3) % 26 + 'A';
首先 s[i]-'A'得到原来字母位于字母表中的序号:A是0,B是1。。。。
(s[i]-'A'+3)%26得到字母平移后位于字母表中的序号,%26是避免序号超出25
最后再加个'A'来把序号转换成对应字母的ASCII码
#include<string>//getline
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin, s);
for (int i = 0; i < s.length(); i++)
{
if ('A' <= s[i] && s[i] <= 'Z')
s[i] = (s[i] - 'A' + 3) % 26 + 'A';
else if('a' <= s[i] && s[i] <= 'z')
s[i] = (s[i] - 'a' + 3) % 26 + 'a';
}
cout << s;
return 0;
}
登录后发布评论
暂无评论,来抢沙发