2014-02-09 64 views
-1

这是我用于ROT13密码的代码。 它与大写,但是当我在招呼给作为输入,它返回[X__b谁能帮助我在这里...c中的ROT13加密代码出现小写错误

void encrypt(char *cipher,int key) 
{ 
    int i = 0; 
    while(cipher[i] != '\n') 
    { 
     if(isalpha(cipher[i])) 
     { 
      if((cipher[i] + key) > 'Z' || (cipher[i] + key) > 'z') 
      { 
       cipher[i] = cipher[i] + key - 26; 
      } 
      else if((cipher[i] + key) >= 'a' && (cipher[i] + key) <= 'z') 
      { 
       cipher[i] = cipher[i] + key; 
      } 
      else if((cipher[i] + key) >= 'A' && (cipher[i] + key) <= 'Z') 
      { 
       cipher[i] = cipher[i] + key; 
      } 
     } 
     i++; 
    } 
} 
+0

东西非常错误的发生的事情与你的大括号... –

+0

的括号罚款这只是我的代码部分,那里是一个问题 – Ram

+0

好了,在这种情况下,一些很有说服力ong正在进行缩进...... –

回答

2

这种情况

f((cipher[i] + key) > 'Z' || (cipher[i] + key) > 'z') 

将适用于所有小写字母,第二部分(cipher[i] + key) > 'z'是多余的

+0

感谢双胞胎我改变了它,现在它工作正常 干杯:D – Ram