ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1.1凯撒密码

2022-03-31 09:31:38  阅读:151  来源: 互联网

标签:1.1 text 密码 && offset encoded 凯撒 string cout


 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 string encoder(string text,int offset)//加密 
 5 {
 6     string encoded_text=text;
 7     for(auto &i:encoded_text)
 8     {
 9         if(i>='a'&&i<='z')
10         i=(i-'a'+offset)%26+'a';
11         if(i>='A'&&i<='Z')
12         i=(i-'A'+offset)%26+'A';
13     }
14     return encoded_text;
15 }
16 string decoder(string text,int offset)//解密 
17 {
18     string decoded_text=text;
19     for(auto &i:decoded_text)
20     {
21         if(i>='a'&&i<='z')
22         i=(i-'a'-offset+26)%26+'a';
23         if(i>='A'&&i<='Z')
24         i=(i-'A'-offset+26)%26+'A';
25     }
26     return decoded_text;
27 }
28 int main()
29 {
30     string text,encoded_text,decoded_text;
31     cout<<"请输入偏移量:"<<endl;
32     int offset;//偏移量
33     cin>>offset;
34     cout << "输入英文文本: "<<endl;
35     char c=getchar();//吞掉回车 !!!!!!!!不然读入text是回车 
36     while(getline(cin,text))
37     {
38         cout<<"加密(输入:e) or 解密(输入:d) ?"<<endl;
39         char flag;
40         cin>>flag;
41         if(flag=='e')
42         {
43             encoded_text = encoder(text,offset);        
44             cout << "加密后英文文本:\t" << encoded_text << endl;
45         }
46         else
47         {
48             decoded_text = decoder(text,offset);
49             cout << "解密后英文文本:\t" << decoded_text << endl;
50         }
51         
52         cout<<"请输入偏移量:"<<endl;
53         int offset;//偏移量
54         cin>>offset;
55         cout << "输入英文文本: "<<endl;
56         char c=getchar();
57     }
58 }

  •  注意:
    • LINE35 读入回车
    • LINE7  
      for(auto &i:encoded_text)

标签:1.1,text,密码,&&,offset,encoded,凯撒,string,cout
来源: https://www.cnblogs.com/zhouruohong/p/16080276.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有