1、解决方案
从ASCII码表我们可以知道大写字母A到Z是的十进制值为65到90,小写字母a到z的十进制值为97到122,不难发现对应的大小写子母间总是相差32的,比如a的97和A的65等,那么我们就可以设计,
当输入是小写字母时,我们让它减32,以字符形式输出就是对应的大写,输入是大写字母让它加32即为对应的大写字母。
2、具体实现
void exchangeLetter()
{
int ch = 0;
while((ch = getchar()) != EOF)
{
//printf("%c", ch);
if(ch >= 97 && ch <= 123) //如果是小写
printf("%c", ch - 32);
if( ch >= 65 && ch <= 91) //如果是大写
printf(" %c", ch + 32);
}
}
3、测试运行
#include <stdio.h>
void exchangeLetter()
{
int ch = 0;
while((ch = getchar()) != EOF)//键入终结字符结束,ctr + z
{
//printf("%c", ch);
if(ch >= 97 && ch <= 123)
printf("%c", ch - 32);
if( ch >= 65 && ch <= 91)
printf("%c", ch + 32);
}
}
int main()
{
exchangeLetter();
return 0;
}
结果: