使用条件编译方法编写一程序,其功能要求是,输入一行电报文字,可以任选两种输出:一为原文输出;二为变换字母的大小写(如小写a变成大写a,大写d变成小写d),其他字符不变。用#define命令控制是否变换
时间: 2023-06-05 11:47:04 浏览: 252
条件语句的翻译程序设计
以下是使用条件编译方法编写的程序,其功能是输入一行电报文字,可以任选两种输出:一为原文输出;二为变换字母的大小写(如小写a变成大写a,大写d变成小写d),其他字符不变。使用#define命令控制是否变换。
```c
#include <stdio.h>
#define TRANSFORM // 定义变换字母大小写的宏
int main()
{
char str[100];
printf("请输入一行电报文字:");
fgets(str, 100, stdin); // 从标准输入读取一行字符串
#ifdef TRANSFORM
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
str[i] -= 32; // 小写字母变成大写字母
else if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32; // 大写字母变成小写字母
}
#endif
printf("输出结果为:%s\n", str);
return 0;
}
```
在上面的程序中,我们使用了条件编译指令`#ifdef`和`#endif`,将变换字母大小写的代码块包含在了`TRANSFORM`宏定义的条件下。如果在编译时定义了`TRANSFORM`宏,那么这段代码就会被编译进去;否则,这段代码就会被忽略掉。
在程序中,我们使用了`fgets()`函数从标准输入读取一行字符串,并将其存储在字符数组`str`中。然后,如果定义了`TRANSFORM`宏,我们就遍历整个字符串,将其中的小写字母变成大写字母,将其中的大写字母变成小写字母。最后,我们输出变换后的字符串。
如果不定义`TRANSFORM`宏,那么程序就只会输出原始的字符串,不会进行大小写变换。
阅读全文