黑马程序员技术交流社区

标题: 对于字符串加密的一个小程序,希望能有就地加密(不需要额外的辅助数组)的程序出现。 [打印本页]

作者: IT小白12    时间: 2015-3-3 21:26
标题: 对于字符串加密的一个小程序,希望能有就地加密(不需要额外的辅助数组)的程序出现。
#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;
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2