Caesar加密算法

来源:互联网 发布:联通网络开发面试题 编辑:程序博客网 时间:2024/05/29 14:01

Caesar加密算法, VS2012

#include "stdafx.h"#include <wtypes.h>#include <iosfwd>#include <fstream>using namespace std;char Caesar(char, int);int _tmain(int argc, _TCHAR* argv[]){    ifstream iFile("D:\\test.txt");    iFile.seekg(0, ios::end);    int nFileLen = iFile.tellg();    iFile.seekg(0, ios::beg);    char* str = new char[nFileLen + 1];    iFile.read(str, nFileLen);    iFile.close();    str[nFileLen] = 0;    int nCaesar = 3;     //加密与解密密码    int n = 0;    for (int i=0; i<nFileLen;i++)    {        str[i] = Caesar(str[i], nCaesar);        if (str[i] == '\n')        {            n++;        }    }    ofstream oFile("D:\\test_result.txt");    oFile.write(str, nFileLen-n);    oFile.close();    delete[] str;    return 0;}char Caesar(char c, int nCaesar){    if (c <= 90 && c >= 65)    {        c += nCaesar;        if (c < 65)        {            c += 26;        }        else if (c > 90)        {            c -= 26;        }    }    else if (c <= 'z' && c >= 'a')    {        c += nCaesar;        if (c < 'a')        {            c += 26;        }        else if (c > 'z')        {            c -= 26;        }    }    return c;}
0 0
原创粉丝点击