C语言对字母加密(字符数组)如何做?

编写程序对一行英文字母如下方法加密:对每个字母,用字母表后该字母后面第5个字母代替原来字母。如“a”后面第5个字母是“f“,用“f”代替“a”。(利用字符数组实现)

代码供参考:

#include<stdio.h>
int main()
{
    int i=0;
    char str[100];
    printf("请输入您所要加密的字符串\n");
    gets(str);
    while(str[i]!='\0'){    //当字符不为'\0'时一直循环 
        if(str[i]>='A'&&str[i]<='Z')
            str[i]=(str[i]+5-'A')%26+'A';//注意转换的方式 
        if(str[i]>='a'&&str[i]<='z')
            str[i]=(str[i]+5-'a')%26+'a';
        i++;
    }
    puts(str);
    return 0;
}