使用条件编译方法编写一程序,其功能要求是,输入一行电报文字,可以任选两种输出:一为原文输出;二为变换字母的大小写(如小写 a 变成大写 A,大写 D 变成小写 d),其他字符不变。用#define 命令控制是否变换字母的大小写。例如,#define CHANGE 1,则输出变换后的文字,若#define CHANGE 0,则原文输出。
时间: 2023-06-18 11:08:27 浏览: 411
以下是使用条件编译方法编写的程序:
```c
#include <stdio.h>
#define CHANGE 1
int main() {
char telegram[100];
printf("请输入一行电报文字:");
fgets(telegram, 100, stdin);
#if CHANGE
for(int i = 0; telegram[i] != '\0'; i++) {
if(telegram[i] >= 'a' && telegram[i] <= 'z') {
telegram[i] -= 32;
} else if(telegram[i] >= 'A' && telegram[i] <= 'Z') {
telegram[i] += 32;
}
}
printf("变换后的文字为:%s", telegram);
#else
printf("原文输出:%s", telegram);
#endif
return 0;
}
```
在代码中,我们使用 `#define` 定义了一个名为 `CHANGE` 的宏,其值为 1。这个宏的作用是控制是否进行大小写字母的变换。
在 `main` 函数中,我们首先使用 `fgets` 函数获取用户输入的一行电报文字,然后使用条件编译语句 `#if` 判断 `CHANGE` 宏的值。如果其为 1,那么我们就遍历整个电报文字,对于每个小写字母将其转换为大写字母,对于每个大写字母将其转换为小写字母,并输出变换后的文字。如果 `CHANGE` 宏的值为 0,那么我们就直接输出原文。
在编译时,我们可以通过修改 `#define` 命令中 `CHANGE` 宏的值来控制程序的行为,从而实现不同的输出效果。
阅读全文