โจทย์ภาษาซี ช่วยดูโค้ดให้หน่อยทีครับ

กระทู้คำถาม
-เขียนโปรแกรมดพื่อรับตัวอักษรโดยใช้ฟังก์ชัน getchar() จนกว่าจะเจอ EOF
ให้แสดงผลตัวหนังสือที่รับเข้าไป โดยมีการทำงานดังนี้

-หากเป็นตัวหนังสือ ให้แสดงเป็นตัวหนังสือตัวถัดไป(ตัวถัดไปของ a คือ z)
-หากเป็นตัวหนังสือ ให้เปลี่ยนตัวเล็กเป็นตัวใหญ่ ตัวใหญ่เป็นตัวเล็ก
-หากเป็นอักขระอื่นๆ ให้แสดงตัวอักษรนั้นได้เลย

โดยโปรแกรมจะต้องใชฟังก์ชันดังนี้
char char_next(char c); ตัวหนังสือตัวถัดไป
char char_twist(char c); ตัวหนังสือ case ตรงข้าม
และเรียกใช้ฟังก์ชันทั้งสองในลักษณะ cascade
char char_next(char_twist(char c));

โปรแกรมที่ผมเขียน
#include<stdio.h>

char char_next(char c);
char char_twist(char c);

int main(){
    char text[15],n[15];
    int i;
    scanf("%s",text);
    
    for(i=0;i<15;i++){
        text = char_next(char_twist(text));
    }
    printf("%s",text);

    return 0;
}
char char_next(char c){
    int i;
    for(i=0;i<15;i++){
        if(c>=32 && c<=122){
            c = c+1;
            return c;
        }
        else{
            c=c;
            return c;
        }
    }
}
char char_twist(char c){
    int i;
    for(i=0;i<=15;i++){
        if(c>=65 && c<=90){
        c = c+32;
        return c;
        }
        else if(c>=97 && c<=122){
            c = c-32;
            return c;
        }
    }
}

ผมยังงงว่า ฟังก์ชัน getcha()ที่เรียกมานี้ใช้ตอนไหนและใช้ยังไง

เอ้าท์พุตตัวอย่างของโจทย์
  hEllO *worLd      //input
  IfMMp *XPSmE   //output
    EOF                 //input

ช่วยทีครับคิดไม่ออกแล้ว
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่