列表

详情


HJ21. 简单密码

描述

现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足

输入描述

输入一组密码,长度不超过100个字符。

输出描述

输出密码变换后的字符串

示例1

输入:

YUANzhi1987

输出:

zvbo9441987

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 268KB, 提交时间: 2021-03-28

#include<stdio.h>
#include<string.h>
int main()
{
    char mima[100],x[100];
    int len,i;
    scanf("%s",mima);
    len=strlen(mima);
    for(i=0;i<len;i++)
    {
        if(mima[i]>='a'&&mima[i]<='c')
            x[i]='2';
        else if(mima[i]>='d'&&mima[i]<='f')
            x[i]='3';
        else if(mima[i]>='g'&&mima[i]<='i')
            x[i]='4';
        else if(mima[i]>='j'&&mima[i]<='l')
            x[i]='5';
        else if(mima[i]>='m'&&mima[i]<='o')
            x[i]='6';
        else if(mima[i]>='p'&&mima[i]<='s')
            x[i]='7';
        else if(mima[i]>='t'&&mima[i]<='v')
            x[i]='8';
        else if(mima[i]>='w'&&mima[i]<='z')
            x[i]='9';
        else if(mima[i]>='A'&&mima[i]<='Y')
            x[i]=mima[i]+33;
        else if(mima[i]=='Z')
            x[i]='a';
        else if(mima[i]>='0'&&mima[i]<='9')
            x[i]=mima[i];
    }
    printf("%s",x);
    
    
    
    
}

C 解法, 执行用时: 1ms, 内存消耗: 296KB, 提交时间: 2021-09-12

#include <stdio.h>

int main() {
   int a, b=0;
   char str1[101]={0},*p_str,temp;
   // for(int i='a';i<='z';i++)
   //     b++;
    //printf("%d",b);
   while (scanf("%s", str1) != EOF) { // 注意 while 处理多个 case
       // 64 位输出请用 printf("%lld")
       //printf("%s\n", str1);
       p_str=str1;
       while(*p_str)
       {
       //1、大写字母变小写,然后往后移一位
           if(*p_str>='A'&&*p_str<='Z')
           {
               temp=*p_str+32+1;
               if(temp>'z')
                   temp-=26;
               printf("%c",temp);
           }
       //2、小写字母变换数字
           else //if(*p_str>='a'&&*p_str<='z')
           {
               switch(*p_str)
               {
                   case 'a':
                   case 'b':
                   case 'c':
                       printf("%c",'2');
                       break;
                   case 'd':
                   case 'e':
                   case 'f':
                       printf("%c",'3');
                       break;
                   case 'g':
                   case 'h':
                   case 'i':
                       printf("%c",'4');
                       break;
                   case 'j':
                   case 'k':
                   case 'l':
                       printf("%c",'5');
                       break;
                   case 'm':
                   case 'n':
                   case 'o':
                       printf("%c",'6');
                       break;
                   case 'p':
                   case 'q':
                   case 'r':
                   case 's':
                       printf("%c",'7');
                       break;
                   case 't':
                   case 'u':
                   case 'v':
                       printf("%c",'8');
                       break;
                   case 'w':
                   case 'x':
                   case 'y':
                   case 'z':
                       printf("%c",'9');
                       break;
                       default:
                       printf("%c",*p_str);
                       break;
               }
           }
       //3、数字不变
           p_str++;
       }
   }
   return 0;
}

上一题