如何使用旋转加密文本文件?

时间:2016-12-07 00:28:25

标签: c++ encryption rotation

我正致力于加密和解密的练习计划。我最近一直在尝试自学C ++,所以请耐心等待。

我想在文本文件中阅读,询问用户他/她想要旋转多少个字符,然后相应地旋转。

尝试这样做时,我遇到了很多问题。最后,我对这部分有一些工作代码。

我的程序现在实际上旋转并打印出正确的旋转角色。但是对于某些角色来说,它是打印一个}甚至是一个汉字。我还必须轮换2016年等日期的数字。我也没有空格。

我知道在我的程序中我直接打印出ch,这可能是错误的一个重要部分。我不确定如何在单词之间包含空格并确保它使用正确的旋转字符。

我将发布以下功能。我的计划规模要大得多,而且我一直在研究其他部分,但我不会发布所有内容,因此它更加简洁。提前谢谢,我真的很感激帮助。我花了好几天试图解决这个问题,当然需要帮助。

1 个答案:

答案 0 :(得分:0)

在我看来,您需要模数(%)运算符。这样的事情应该有效:

string rotEnc(int rotNum,vector<string> sentence) 
{
    stringstream ss;
    for ( int i = 0; i < sentence.size(); i++ ) 
    {
        for ( int j = 0; j < sentence[i].length(); j++ ) 
        {
            char c = tolower( sentence[i][j] );

            char ch = 'a' + ( ( rotNum + ( c - 'a' ) ) % 26 );
            ss << ch;
        }
        ss << ' ';
    }
    ss << ".\n";
}

为了显示单一目的的概念,我制作了rotNum和字符串向量参数。调用函数应该处理创建它们。我还把它作为一个句子返回。