m0_61873236 2022-02-22 16:03 采纳率: 85%
浏览 61
已结题

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;
}
  • 写回答

3条回答 默认 最新

  • 「已注销」 2022-02-22 17:11
    关注

    你应该返回修改后的字符,而不是返回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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 修改了问题 2月22日
  • 创建了问题 2月22日