关于字符串加密程序中的一些问题
2015-08-28 21:34
197 查看
如题,见程序中的注释
#include<stdlib.h> /*要加这一行才能用malloc*/ #include<stdio.h> #include<string.h> int find_char(char *new_char,char a) { int i=0; while(new_char[i]!='\0') { if(new_char[i]==a) return 1; i++; } return 0; } void encrypt_code(char *key,char *data) { int number=0,i=0,j=0,len=0,len_1=0; char new_char[26]; char secret[26]; char *encrypt=NULL; len_1=strlen(data); encrypt=(char *)malloc(len_1*sizeof(char)); //这里要有cha*的强制转换 memset(new_char,'\0', 26 * sizeof(char)) ; /*这里可以记一下,初始化为0的方法*/ while(key[i]!='\0') { if(!(find_char(new_char,key[i]))) { new_char[number]=key[i]; number++; } i++; } len=strlen(new_char); for(i=0;i<len;i++) { if(new_char[i]<='z' && new_char[i]>='a') new_char[i]-=32; } for(i=0;i<26;i++) { if(i<len) { secret[i]=new_char[i]; } else { while(j<26) { if(!(find_char(new_char,'A'+j))) { secret[i]='A'+j; j++; break; } else { j++; } } } } for(i=0;i<len_1;i++) { if(data[i]==' ') { encrypt[i]=data[i]; } else { if(data[i]<='z' && data[i]>='a') { encrypt[i]=secret[data[i]-'a']; encrypt[i]+=32; } else encrypt[i]=secret[data[i]-'A']; } } for(i=0;i<len_1;i++) { printf("%c",encrypt[i]); } } int main() { char key[26]; char data[1000]; gets(key); /*输入不带空格的字符串方法*/ gets(data); encrypt_code(key,data); return 0; }
相关文章推荐
- HDU 2795 Billboard
- ACM ICPC 2011–2012, NEERC, Northern Subregional Contest J. John’s Inversions(合并排序求逆序数对数)
- 个性化推荐技术的十大挑战
- HDU--5396(区间dp+排列组合)
- 嵌入式根文件系统制作
- UVa 12627:Erratic Expansion(递推)
- iOS中UIButton控件的用法及部分参数解释
- LeetCode:Missing Number
- linux kernel的中断子系统之:softirq
- VC CFont 用法
- 用户研究
- Python 各种集合内置方法的时间复杂度
- hdoj 4289 Control 【拆点 求最小割】
- POJ 2182 Lost Cows (线段树)
- 文本属性Attributes
- Java泛型中E、T、K、V等的含义
- 贝叶斯算法 mapreduce实现
- 嵌入式Linux内核制作
- POJ2096——概率DP——Collecting Bugs
- LAMP--简单篇