C++ 与“一起移动的字母表”;偏移量;。圆周方向

C++ 与“一起移动的字母表”;偏移量;。圆周方向,c++,C++,嗨,我不知道怎么解决这个问题。我对“循环”有问题,当z超过或负偏移量超过a时,应该发生循环。我想我必须重新考虑整个计划。对不起我的英语,我希望你能帮助我或指导我:) **编写一个C++程序(只使用IF和EXE)来编码一封信。编码包括返回字母表中偏离输入字母右侧或左侧的字母。当偏移值为正值时,将给出右侧的位置。另一方面,如果偏移值为负,则偏移将向左。偏移量值0被视为无效 在正确的路径中,在字母z之后,字母a被认为即将出现。如果输入的字母是大写字母,则大写字母表也是如此 在左侧路径上,如果超过字

嗨,我不知道怎么解决这个问题。我对“循环”有问题,当z超过或负偏移量超过a时,应该发生循环。我想我必须重新考虑整个计划。对不起我的英语,我希望你能帮助我或指导我:)

**编写一个C++程序(只使用IF和EXE)来编码一封信。编码包括返回字母表中偏离输入字母右侧或左侧的字母。当偏移值为正值时,将给出右侧的位置。另一方面,如果偏移值为负,则偏移将向左。偏移量值0被视为无效

  • 在正确的路径中,在字母z之后,字母a被认为即将出现。如果输入的字母是大写字母,则大写字母表也是如此
  • 在左侧路径上,如果超过字母a,则认为字母z即将出现。如果输入的字母是大写字母,则大写字母表也是如此。 需要验证输入的值是否有效:
  • 偏移量的值必须在范围(-26;26)内且不同于0**

让我们考虑你所有的信件都不是资本,这会使事情变得更容易。


字符*编码消息(常量字符*输入、整数数组化、整数偏移){
char*encoded=(char*)malloc(arraySize);

对于(inti=0;i='a'&&input[i],你可以做一些简单的事情:
i++;if(i>25)i=0;
i--;if(i<0)i=25;
。你想实现
凯撒之轮
算法吗?你可能想在C中查找模运算符:
%
(不知道C++)…<代码> 25%=25=25 /代码>;<代码> 26%=0=0 /代码>;<代码> 27% 26=1 > <代码>参见。如果您的任务是用C++来代替C++,则<代码> >输入(<)/>代码>计算指针的大小,而不是输入字符串中的字符数。这不是“纯C”。在严格一致性的意义上,因为它依赖于本标准未保证的字符编码特性,尤其是字母a到z的代码是连续的,并按升序排列。在分配和赋值中,可能会在编码字符串的末尾提供空字符。而C的标准不保证任何特定的字符编码,几乎每一种常见的编码都将字符
a
z
按连续和升序排列。@Alex:EBCDIC不保证,而且现在教学生不要做假设还为时过早。这是一堂有价值的课。