题目:
将输入的大写字母转换为小写输出
涉及知识点:
计算机识别的是二进制数据,所以输入的字符A会被转换为二进制,可在ASLLC码表查看大小写字母之间的差值为32,题目中要求将大写字母转换为小写即将大写字母对应的ASLLC的值减去32就会得到对应的小写字母。
代码:
int main()
{
int ch = 0;
while (ch = getchar())
{
putchar(ch + 32);
}
return 0;
}
运行结果:
分析:
在代码运行时会发现在输出时会有多余的*输出,这是因为键盘的输入会先存入输入缓冲区再传入getchar函数,这会将回车键识别为/n进行运算得到*。
改进方法:
int main()
{
int ch = 0;
while (ch = getchar())
{
putchar(ch + 32);
getchar(); //将输入缓冲区的/n取出
}
return 0;
}