代码运行结果
问题描述
编写一程序,实现大小写字母的转换。即输入大写字母,转换成小写字母,反之亦然,直到输入#结束。
算法分析
C语言中,字符型数据在内存中以整数的形式存储,一个整数既可以以字符的形式输出,也可以以整数的形式输出,这取决于输出函数的控制。因此可以将一个字符看成整数,进行加减运算从而变成其它字符。
另外,在ASCII码中,a对应的整数是97,而A对应的整数是65,即大小写字母之间相差32,且小写字母比大写字母大。因此可以通过小写字母c-32得到对应的大写字母,反之亦然。
算法实现
#include<stdio.h>
int main()
{
char c;
do
{
scanf("%c",&c);
if(c>='a' && c<='z')
printf("%c\n",c-32);
else if(c>='A' && c<='Z')
printf("%c\n",c+32);
}while(c!='#');
return 0;
}