zoukankan      html  css  js  c++  java
  • Vigenère 密码

    这个东西的源码: ```html 可登录,可提交,挺好使 ``` 注:动态题面查看测试中,有问题反馈哦。

    标签:
    (fbox{模拟})
    (fbox{字符串处理})

    代码:

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <cstdlib>
    using namespace std;
    char s[28][28] = {
    {"abcdefghijklmnopqrstuvwxyz"},
    {"bcdefghijklmnopqrstuvwxyza"},
    {"cdefghijklmnopqrstuvwxyzab"},
    {"defghijklmnopqrstuvwxyzabc"},
    {"efghijklmnopqrstuvwxyzabcd"},
    {"fghijklmnopqrstuvwxyzabcde"},
    {"ghijklmnopqrstuvwxyzabcdef"},
    {"hijklmnopqrstuvwxyzabcdefg"},
    {"ijklmnopqrstuvwxyzabcdefgh"},
    {"jklmnopqrstuvwxyzabcdefghi"},
    {"klmnopqrstuvwxyzabcdefghij"},
    {"lmnopqrstuvwxyzabcdefghijk"},
    {"mnopqrstuvwxyzabcdefghijkl"},
    {"nopqrstuvwxyzabcdefghijklm"},
    {"opqrstuvwxyzabcdefghijklmn"},
    {"pqrstuvwxyzabcdefghijklmno"},
    {"qrstuvwxyzabcdefghijklmnop"},
    {"rstuvwxyzabcdefghijklmnopq"},
    {"stuvwxyzabcdefghijklmnopqr"},
    {"tuvwxyzabcdefghijklmnopqrs"},
    {"uvwxyzabcdefghijklmnopqrst"},
    {"vwxyzabcdefghijklmnopqrstu"},
    {"wxyzabcdefghijklmnopqrstuv"},
    {"xyzabcdefghijklmnopqrstuvw"},
    {"yzabcdefghijklmnopqrstuvwx"},
    {"zabcdefghijklmnopqrstuvwxy"},
    };
    
    signed main() {
    	string key;
    	string v1;
    	char v2[1000101];
    	int v2len = 0;
    	memset(v2,' ',sizeof(v2));
    	cin>>key;
    	cin>>v1;
    	if(v1.length()>key.length()) {
    		
    		int i = 0;
    		int j = 0;
    		int k = 0;
    		while(j<v1.length()) {
    			//´¦Àí´óд 
    			if(v1[j]>='A'&&v1[j]<='Z') {
    				if(key[i]>='A'&&key[i]<='Z') {
    					key[i] = key[i]-'A'+'a';
    				}
    				for(k = 0;k<26;++k) {
    					if(s[k][key[i]-'a']==v1[j]-'A'+'a') {
    						v2[v2len] = k+'A';
    						v2len++;
    					}
    				}
    			}
    			//´¦ÀíСд 
    			if(v1[j]>='a'&&v1[j]<='z') {
    				if(key[i]>='A'&&key[i]<='Z') {
    					key[i] = key[i]-'A'+'a';
    				}
    				for(k = 0;k<26;++k) {
    					if(s[k][key[i]-'a']==v1[j]) {
    						v2[v2len] = k+'a';
    						v2len++;
    					}
    				}
    			}
    			i++;
    			j++;
    			if(i==key.length()) {
    				i = 0;
    			}
    		}
    	} else {
    		int i = 0;
    		int j = 0;
    		int k = 0;
    		while(j<v1.length()) {
    			//´¦Àí´óд 
    			if(v1[j]>='A'&&v1[j]<='Z') {
    				if(key[i]>='A'&&key[i]<='Z') {
    					key[i] = key[i]-'A'+'a';
    				}
    				for(k = 0;k<26;++k) {
    					if(s[k][key[i]-'a']==v1[j]-'A'+'a') {
    						v2[v2len] = k+'A';
    						v2len++;
    					}
    				}
    			}
    			//´¦ÀíСд 
    			if(v1[j]>='a'&&v1[j]<='z') {
    				if(key[i]>='A'&&key[i]<='Z') {
    					key[i] = key[i]-'A'+'a';
    				}
    				for(k = 0;k<26;++k) {
    					if(s[k][key[i]-'a']==v1[j]) {
    						v2[v2len] = k+'a';
    						v2len++;
    					}
    				}
    			}
    			i++;
    			j++;
    		}
    	}
    //	cout<<v2len<<endl;
    	for(int i = 0;i<v2len;++i) {
    		cout<<v2[i];
    	}
    } 
    
  • 相关阅读:
    java中过滤器和拦截器的区别
    Java中内部类和静态内部类的区别
    SpringBoot启动的时候切换配置文件命令
    centos7安装Subversion
    关于curl_setopt参数的记录
    Linux Samba文件共享服务,安装与案例配置
    CentOS7源码安装Redis5.0.4非关系型数据库
    Centos7部署LAMP平台之架构之路
    Centos7安装及配置DHCP服务
    CentOS 7源码安装MYSQL-5.6
  • 原文地址:https://www.cnblogs.com/littlefrog/p/12217145.html
Copyright © 2011-2022 走看看