题解 | #字符串加解密#

字符串加解密

https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

//OJ题目没有特意进行函数命名,代码习惯良好的可以用ENC和DEC等进行加解密函数命名
#include <stdio.h>
#include<string.h>
char* In(char arr[1000],int sz1)//加密
{
    int i=0;
    for(i=0;i<sz1;i++)
    {
        if(arr[i]>='a'&&arr[i]<'z')
        {
            arr[i]-=31;
        }
        else if(arr[i]=='z')
        {
            arr[i]-=57;
        }
        else if(arr[i]>='A'&&arr[i]<'Z')
        {
            arr[i]+=33;
        }
        else if(arr[i]=='Z')
        {
            arr[i]+=7;
        }
        else if(arr[i]>='0'&&arr[i]<='9')
        {
            arr[i]=(arr[i]+1-48)%10+48;
        }
    }
    arr[sz1]='\0';
    return arr;
}
char* Out(char arr[1000],int sz2)//解密
{
    int i=0;
    for(i=0;i<sz2;i++)
    {
        if(arr[i]>'a'&&arr[i]<='z')
        {
            arr[i]-=33;
        }
        else if(arr[i]=='a')
        {
            arr[i]-=7;
        }
        else if(arr[i]>'A'&&arr[i]<='Z')
        {
            arr[i]+=31;
        }
        else if(arr[i]=='A')
        {
            arr[i]+=57;
        }
        else if(arr[i]>='0'&&arr[i]<='9')
        {
            arr[i]=((arr[i]-48)+10-1)%10+48;
        }
    }
    arr[sz2]='\0';
    return arr;
}
int main()
{
    char arr1[1000],arr2[1000];
    gets(arr1);
    gets(arr2);
    int sz1=strlen(arr1),sz2=strlen(arr2);
    char* p1=In(arr1,sz1),*p2=Out(arr2,sz2);
    printf("%s\n%s",p1,p2);
    return 0;
}

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
1 1 评论
分享
牛客网
牛客企业服务