我正在像下面这样加密,但不知道如何防止大写字母移出范围后进入其他符号,类似地,小写字母超出小写字母的范围。我怎样才能让他们围成一圈并停止溢出?谢谢
int size = strlen(plain_text);
int arrayelement = 0;
for(arrayelement = 0; arrayelement < size; arrayelement++)
{
if (islower(plain_text[arrayelement]))
{
ciphered_text[arrayelement] = (int)(plain_text[arrayelement] + shiftkey);
}
else if (isupper(plain_text[arrayelement]))
{
ciphered_text[arrayelement] = (int)(plain_text[arrayelement] + shiftkey);
}
}
ciphered_text[size] = '\0';
printf("%s", ciphered_text);
最佳答案
我猜你使用了像 char 这样的类型,所以一个简单的解决方案就是不溢出
int tmp_ciphered = (my_char + shift) % 0xff;
char ciphered = (char)(tmp_ciphered);
然后你转身不溢出,这是一个环
关于密码溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407879/