关于#c语言#的问题:#define CHANGE1,则输出变换后的文字,若#define CHANGE 0

c语言使用条件编译方法编写一程序,其功能要求是,输入一行电报文字,可以任选两种输出:一为原文输出;二为变换字母的大小写(如小写a变成大写A,大写D变成小写d),其他字符不变,用#define命令控制是否变换字母的大小写。例如,#define CHANGE1,则输出变换后的文字,若#define CHANGE 0,则原文输出。

#include <stdio.h>
#define CHANGE 1 // 可以修改为0以输出原文

int main() {
    char input[1000], output[1000];
    int i = 0;

    printf("请输入一行电报文字:\n");
    fgets(input, 1000, stdin); // 从标准输入读取一行文字

    // 判断是否需要变换大小写
    if (CHANGE) {
        while (input[i] != '\0') {
            if (input[i] >= 'a' && input[i] <= 'z') {
                output[i] = input[i] - 'a' + 'A';
            } else if (input[i] >= 'A' && input[i] <= 'Z') {
                output[i] = input[i] - 'A' + 'a';
            } else {
                output[i] = input[i];
            }
            i++;
        }
        output[i] = '\0'; // 结尾增加一个空字符,以表示字符串的结束
    } else {
        strcpy(output, input); // 直接复制输入
    }

    printf("输出结果为:\n%s", output); // 输出结果

    return 0;
}