问题
s1,s2两个串,s1全部存进s3,s2中与s1不同的存进s3。
这是前缀加密的一道习题
在代码里面的注释写的很清楚了,求问为什么结果会出现如下?
而不是得到 keysabcdfghijlmnopqrtuvwxz
运行截图:
代码
当然,一步一步的查绝对是能查出来的~
在密文前面加string的类型密码报表的生成
思路:用两个string去接密码和前面的字符串,然后做循环即可
s1:keys s2:abcdefghijklmnopqrstuvwxyz(可以自己定,为了简单用了这个例子) s3(res):keysabcdfghijlmnopqrtuvwxz
算法补充:还可以实现不分大小写进行替换的~(打表)
还可以扩充到对ASCII码值表的加密
#include <iostream>
#include <string>
using namespace std;
int judge(char temp,string s){
for(int i=0;i<s.length();i++){
if(temp==s[i]) return 0;
}
return 1;
}
void main(){
string s1,s2;
char s3[100];
cin>>s1>>s2; //s1是附加串,s2是主串
for(int i=0;i<s1.length();i++){
s3[i] = s1[i];
}
for(i=s1.length();i<s2.length();i++){
for(int j=0;j<s2.length();j++){
if(judge(s2[j],s1)){
s3[i]=s2[j];
}
}
}
s3[i]='\0';
cout<<s3<<endl;
}
happy coding
seen
===========================