putchar的输入输出问题
自行练习中,和别人的语句一样,但是不能正常输出,是什么问题啊# include<stdio.h>
int main()
{
char a,b,c;
a=getchar();
b=getchar();
c=getchar();
a=a+32;
b=b+32;
c=c+32;
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
} 你输入 1。实际上你输入了 1 和 '\n' 2个字符。getchar没有过滤\n的功能。
# include<stdio.h>
int main()
{
char a,b,c;
a=getchar();
getchar();
b=getchar();
getchar();
c=getchar();
getchar();
a=a+32;
b=b+32;
c=c+32;
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
} 大写字母加32是本家小写
小写字母加32 超出ascii码范围故:无法显示 本帖最后由 isdkz 于 2022-2-24 15:47 编辑
你那个是把大写变小写的,把小写变成大写应该是减32,小写字母的ascii码加32就有可能超出ascii码的范围了,所以有可能无法显示,
还有你输入的逗号也算一个字符,用getchar()就不要输入逗号
# include<stdio.h>
int main()
{
char a,b,c;
a=getchar();
b=getchar();
c=getchar();
a=a-32; // 改成减32
b=b-32;
c=c-32;
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
}
isdkz 发表于 2022-2-24 15:43
你那个是把大写变小写的,把小写变成大写应该是减32,小写字母的ascii码加32就有可能超出ascii码的范围了, ...
谢谢啦
wp231957 发表于 2022-2-24 15:37
大写字母加32是本家小写
小写字母加32 超出ascii码范围故:无法显示
谢谢啊 ba21 发表于 2022-2-24 15:37
你输入 1。实际上你输入了 1 和 '\n' 2个字符。getchar没有过滤\n的功能。
# include
int main()
谢谢啦
页:
[1]