关于#句子加密#的问题,如何解决?

任务描述
编程读入若干英文句子(不超过80字符,英文全大写,包括空格标点),
每个句子一行,加密后依次输出。加密方式是字母替换法,26个英文
字母分成2组,每组对应位置的字母互为替身,其它字符不变。
第1组字母:ABCDEFGHIJKLM
第2组字母:NOPQRSTUVWXYZ
A与N互为替身,B与O互为替身,…,M与Z互为替身。

输入格式:
若干全大写英文句子,包括空格和标点。一个句子一行,不超过80个字符。

输出格式:
输出加密后句子,一个一行。

输入样例:
INT DOUBLE FOR WHILE RETURN

输出样例:
VAG QBHOYR SBE JUVYR ERGHEA

输入样例:
1.THEY LIVE UP IN THE MOUNTAINS.
2.WE SPENT A WEEK WALKING IN THE MOUNTAINS.
3.I WOKE UP IN THE MIDDLE OF THE NIGHT AND COULD HEAR A TAPPING ON THE WINDOW.

输出样例:
1.GURL YVIR HC VA GUR ZBHAGNVAF.
2.JR FCRAG N JRRX JNYXVAT VA GUR ZBHAGNVAF.
3.V JBXR HC VA GUR ZVQQYR BS GUR AVTUG NAQ PBHYQ URNE N GNCCVAT BA GUR JVAQBJ.



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{

    char str[80] = {0};
    int i = 0;
    gets(str);

    for (i = 0; i < strlen(str); i++)
    {
        if (str[i] >= 'A' && str[i] <= 'M')
        {

            str[i] += 'N' - 'A';
        }
        else if (str[i] >= 'N' && str[i] <= 'Z')
        {

            str[i] -= 'N' - 'A';
        }
    }
    printf("%s\n", str);
    return 0;
}