【发布时间】:2016-04-01 19:45:04
【问题描述】:
这是一个简单的代码,但我无法理解一个奇怪的事件。 代码:
void Crittografia::CifraTesto(char text[]){
int i;
for (i=0;i<strlen(text);i++){
text[i]=text[i] + key;
if(text[i] > 'z'){
text[i]=text[i] - 26;
}
}
}
函数接收此处输入的字符串:
It works.
在这种情况下,它与 5 的键一起使用。“y”正确地更改为“d”。
但在这种情况下:Doesn't work.
键为 7 时,它会更改 'Ç' 中的 'y' 而不是正确的 'f',因此显然不会执行该行:“text[i]=text[i] - 26;”
【问题讨论】:
-
您需要学习如何从控制台窗口复制文本。在 Windows 操作系统上,右键单击标题栏,选择“编辑”->“标记”。用鼠标突出显示要复制的区域,然后按 Enter。这会将突出显示的文本放置到剪贴板上,以便将其粘贴到您的问题中。
-
ASCII table reference 可能是一个好的开始。然后你可能知道为什么,例如
someCharacteer - 26可能不是一个好主意。 -
C 中没有
::,所以你的问题也不是C。
标签: c++ encryption ascii