c语言程序相关的问题

c语言初学者
编写一个程序 将所输入的语句中 大写转化成小写 小写转换成大写 符号不变
不能使用scanf fgets 还有数组
这是我的代码
能我看看怎么修改吗
且要含有 int swap_case(int character)

#include <stdio.h>

int swap_case(int character);

int main(void) {
    int ch;
    while((ch=getchar())!= EOF) {
    if(swap_case(ch)==1 || swap_case(ch)==2 || swap_case(ch)==3) {
    putchar(ch);
}   
}
}

int swap_case(int character) {    
    char m=character;
    if(m>='A' && m<='Z') {
    m=m+32;
    return 1;
}
    else if(m>='a' && m<='z') {
    m=m-32;
    return 2;
}   
    else {
    m=m*1;  
    return 3;
}
    return 0;
}

你应该返回修改后的字符,而不是返回0,1,2,3

#include <stdio.h>

int swap_case(int character);

int main(void) {
    int ch;
    while ((ch = getchar()) != EOF) {
        ch = swap_case(ch);
        putchar(ch);
    }
    return 0;
}

int swap_case(int character) {
    int m = character;
    if (m >= 'A' && m <= 'Z') {
        m = m + 32;
    } else if (m >= 'a' && m <= 'z') {
        m = m - 32;
    }
    return m;
}

#include <stdio.h>
int main(void) {
    char ch;
    while ((ch = getchar())!= '\n') {
        if ((ch >= 'A'&&ch <='Z')||(ch>='a'&&ch<='z'))
            ch = ch ^ 32;
        putchar(ch);
    }
    putchar(ch);
    return 0;
}
#include <stdio.h>
#include <ctype.h>

int main()
{
    char ch;
    while ((ch = getchar()) != EOF)
    {
        if (ch >= 'A' && ch <= 'Z')
            putchar('a' + ch - 'A');
        else if (ch >= 'a' && ch <= 'z')
            putchar('A' + ch - 'a');
        else
            putchar(ch);
    }
    return 0;
}