遇到的一个凯撒加密问题

编程实现对键盘输入的一行英文句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后第三个字母代替该字母,字母 x , y , z 分别以 a , b , c 代替,字母 X , Y , Z 分别以 A , B , C 代替。若为其它字符则不变。
若为其它字符则不变。
输入格式:
输入一行英文句子
输出格式:
输出加密后的句子
输入样例1:
在这里给出一组输入。例如:
This is a test string .
输出样例1:
在这里给出相应的输出。例如:
Wklv lv d whvw vwulqj .
输入样例2:
在这里给出一组输入。例如:
ABCabc xyzXYZ &123
输出样例2:
在这里给出相应的输出。例如:
DEFdef abcABC &123

有啥困难?
((字符-'a') + 3)%26+'a'

#include <stdio.h>
int main()
{
    char s[100];
    ges(s);
    int i=0;
    while(s[i] != '\0')
    {
        if(s[i] >='a' && s[i] <='z')
              s[i] = ((s[i] - 'a') + 3)%26 + 'a';
        else if(s[i] >='A' && s[i] <='Z')
             s[i] = ((s[i] - 'A') + 3)%26 + 'A';
        i++;
    }
    puts(s);
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char str[1024];
int i=0;
printf("请输入一串字符:");
scanf("%s",str);
while(str[i]!='\0')
{
if((str[i]>='a'&&str[i]<='w')||(str[i]>='A'&&str[i]<='W'))
str[i]+=3;
else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))
str[i]=str[i]-26+3;
i++;
}
printf("加密后的字符串为%s\n",str);
}

https://www.cnblogs.com/thismajor/p/15377362.html