#define LETTER 0
main()
{char str[20]="C Language",c;
int i=0;
while((c=str[i])!='\0')
{i++;
#if LETTER
if(c>='a'&&c<='z') c=c-32;
#else
if(c>='A'&&c<='Z') c=c+32;
#endif
printf("%c",c);
}
}
输出结果 c language
解释:因为LETTER=0,所以所有大写会变成小写,如果LETTER≠0,则所有小写变大写!
#define LETTER 0 //定义一个宏常量 LETTER
main() //主函数部分
{char str[20]="C Language",c; //字符串 赋值
int i=0; //定义一个整形变量i
while((c=str[i])!='\0') //循环语句,单独处理字符串中的每一个字符,
//直到字符串结束,'\0'是字符串结束的标志.
{i++; //循环控制.i从字符串的第一个字符开始,每处理完一个就+1,
#if LETTER //判断语句,判断LETTER的值,如果为真,则编译#else之前的语句,
//否则编译#else之后的语句.
if(c>='a'&&c<='z') c=c-32; //因为LETTER为0,所以这部分跳过,不编译.
#else
if(c>='A'&&c<='Z') c=c+32; //因为LETTER为0,所以这部分是经过编译的,所以会执行.
#endif //宏编译结束.
printf("%c",c); //输出处理后的字符串.
}
}