题解 | #字符串加密#

字符串加密

http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

#include<stdio.h> #include<string.h> int main() { char key[101];//定义一个key while(gets(key)!=NULL) {

    char scours[101];//要加密的字符串
    gets(scours);
    
    char key1[27];
    char alpha[27];
    char temp[27];
    char new[101];
    int lengthkey=strlen(key),lengthscours=strlen(scours);
    int m=0;
    for(int i=0;i<lengthkey;i++)//给关键字key去重
    {
        for(int j=i+1;j<lengthkey;j++)
        {
            if(key[i]==key[j])
            {
                for(int k=j;k<lengthkey-1;k++)
                {
                    key[k]=key[k+1];
                }
                lengthkey--;
                j--;
            }
        }
    }
    for(int i=0;i<lengthkey;i++)//把去重之后的关键字赋值给key1,这样key1的长度正好是去重之后有效的key的长度
    {
        key1[i]=key[i];
    }
    //puts(key1);
    for(char i='a';i<='z';i++)//给字母表赋值,a-z
    {
        alpha[m]=i;
        m++;
    }
    //printf("%d",m);//m=26
    //puts(alpha);
    for(int i=0;i<m;i++)
    {
        temp[i]=alpha[i];
    }
    for(int i=0;i<lengthkey;i++)//在临时temp中找到与key中相同的字母并删除
    {
        for(int j=0;j<m;j++)
        {
            if(key1[i]==temp[j])
            {
                for(int k=j;k<m-1;k++)
                {
                    temp[k]=temp[k+1];
                }
                m--;
                j--;
            }
        }
    }
    //printf("%d",m);//m=19
    //puts(temp);
    for(int i=0;i<m;i++)//把删除后的temp连接到key1后面,这样key1就是排好的字符串
    {
        key1[lengthkey+i]=temp[i];
    }
    //puts(key1);
    int n=0;
    for(int i=0;i<lengthscours;i++)//在字母表alpha中找到要加密的字符串
    {
        for(int j=0;j<26;j++)
        {
            if(scours[i]==alpha[j])
            {
                new[n]=key1[j];//找到之后输出和字母表元素位置相同的key1的字符,给到new
                n++;
            }
        }
    }
    for(int i=0;i<lengthscours;i++)//输出new中的字符
    {
        printf("%c",new[i]);
    }
    printf("\n");
}
return 0;

}

全部评论

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务