我正致力于加密和解密的练习计划。我最近一直在尝试自学C ++,所以请耐心等待。
我想在文本文件中阅读,询问用户他/她想要旋转多少个字符,然后相应地旋转。
尝试这样做时,我遇到了很多问题。最后,我对这部分有一些工作代码。
我的程序现在实际上旋转并打印出正确的旋转角色。但是对于某些角色来说,它是打印一个}甚至是一个汉字。我还必须轮换2016年等日期的数字。我也没有空格。
我知道在我的程序中我直接打印出ch,这可能是错误的一个重要部分。我不确定如何在单词之间包含空格并确保它使用正确的旋转字符。
我将发布以下功能。我的计划规模要大得多,而且我一直在研究其他部分,但我不会发布所有内容,因此它更加简洁。提前谢谢,我真的很感激帮助。我花了好几天试图解决这个问题,当然需要帮助。
答案 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和字符串向量参数。调用函数应该处理创建它们。我还把它作为一个句子返回。