代码改变世界

用C语言简单加密解密

2013-11-03 11:49  kingshow  阅读(4331)  评论(0编辑  收藏  举报

     使用char表示的字符型数据,在本质上与我们前面介绍的整型数据并无太大的区别,只是char类型占用的内存字节数更小,能够表示的数据范围更小而已。在使用上,char被专门用来表示C语言的字符集中的各种字符,不要把它当成一个整型数据类型来使用。
对于字符类型,我们常常利用它来处理字符串中的单个字符或者是实现一些字符游戏。例如,我们可以对字符串中的单个字符进行运算,实现字符串的简单加密:

#include <stdio.h>
#include <string.h>  // strlen()函数所在的头文件
#include <ctype.h>   // isalpha()函数所在的头文件

int main()
{
    // 定义一个明文字符串
    char msg[] = "This is C program!";
    int i = 0 ;
    // 逐个遍历字符串中的字符,对其进行处理
    for(i=0; i<strlen(msg); i++)
    {
        // 获得字符串中的当前字符
        char cur = msg[i];
        // 判断当前字符是否是字母字符
        if(isalpha(cur))
            // 对字母字符进行简单加密处理,然后重新写回字符串
            msg[i] = cur +1;
    }

    // 输出加密后的字符串
    printf("the encrypted message is: %s\n",msg);

    //解码
    for(i=0; i<strlen(msg); i++)
    {
        char c =msg[i];
        if(isalpha(c))
        {
            msg[i] = c - 1;
        }
    }
    printf("the decrypted message is: %s\n",msg);
    return 0;
}

 这样实现了C语言的简单加密和解密!