A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include<stdio.h>
int main(){
            char str1[100],str2[100],*p,*q;//声明数组和指针。
            int x;
            gets(str1);//将输入的字符存入str1字符数组中
        p=str1;
        q=str2;
/*
*只处理字符的加密,其他的字符不加密
*/
    while (*p){
        //大写字母的加密
                if ((*p)>='A'&&(*p)<='Z' ){
                        x=(*p)-'A'; //将所取得的字符依次向后偏移1,并将每次后移的字符存入输出数组str2中
                            x++;
                        (*q)=x%26+'A'; //对于X加密的结果是YZA,也就是26个字母组成一个循环的加密过程,也是%26的原因
                        q++;
                            x++;
                        (*q)=x%26+'A';
                        q++;
                            x++;
                        (*q)=x%26+'A';
        }
    //小写字母的加密
        else if ( (*p)>='a' && (*p)<='z' ){
                        x=(*p)-'a'; //同上,不过是参照字符变为:a
                            x++; (*q)=x%26+'a'; q++;//同上
                            x++; (*q)=x%26+'a'; q++;
                            x++; (*q)=x%26+'a';
        }
        else (*q)=(*p);//不加密的字符直接存入输出数组
        p++;//依次后移直到处理完所有输入数组的字符
                q++;
    }
    (*q)=0;
        printf("%s\n",str2);
        return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马