9键26键键盘密码 加密解密脚本
- #include<stdio.h>
- #include<string.h>
- char key[10][5]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
- char keyboard[11]="qwertyuiop";
- int encode(char a[]){
- for(int i=0;i<strlen(a);i++){
- for(int j=2;j<=9;j++){
- for(int k=0;k<strlen(key[j]);k++){
- if(a[i]==key[j][k]){
- for(int l =0;l<=k;l++){
- printf("%c",keyboard[j-1]);
- }
- printf(" ");
- break;
- }
- }
- }
- }
- }
- int decode(char a[]){
- int i=0;
- char c[26][5]={"w","ww","www","e","ee","eee","r","rr","rrr","t","tt","ttt","y","yy","yyy","u","uu","uuu","uuuu","i","ii","iii","o","oo","ooo","oooo"};
- while(i<strlen(a)){
- char b[5]={'\0','\0','\0','\0','\0'};
- int o=0;
- while(a[i]!=' '){
- b[o]=a[i];
- i++;
- o++;
- }
- for(int j=0;j<26;j++){
- if(!strncmp(b,c[j],strlen(b)+1)){
- printf("%c",'a'+j);
- break;
- }
- }
- i++;
- }
- }
- int main(){
- char input[1000];
- char choice;
- printf("0:encode\n1:decode\n");
- scanf("%d\n",&choice);
- if(choice==0){
- gets(input);
- encode(input);
- }
- if(choice==1){
- gets(input);
- input[strlen(input)]=' ';
- input[strlen(input)+1]='\0';
- decode(input);
- }
- }
使用26键键盘的最上面一行的英文字母分别映射到九键键盘
字母重复次数为9键键盘的第几个字母