yangbaowen 发表于 2022-4-10 22:45:55

帮我解释一下原因

谁能清楚的解释一下为什么出现这个结果吗

ba21 发表于 2022-4-10 22:53:54

getchar()-32 输入的字符-32 对ascii表。

andy大宝 发表于 2022-4-11 14:04:00

每个大写字母与小写字母的ascll码差值为32,见ascll码表:

https://blog.csdn.net/jiayoudangdang/article/details/79828853

gandixiwang 发表于 2022-4-11 19:36:58

输入dk输出dK是因为
getchar函数每次都只能读取一个字符
putchar函数每次都只输出一个字符

你输入了dk之后
getchar()函数先是读取到了字符d,然后把字符d赋值给变量c
然后通过putchar(c)把字符d给打印出去

然后putchar(getchar()-32)的意思是
getchar读取完字符d之后读取了字符k
所以putchar(getchar()-32)=putchar('k'-32)
根据ascll码'k'-32='K'
所以putchar(getchar()-32)=putchar('k')
所以输出结果为dK

yangbaowen 发表于 2022-4-11 22:35:18

gandixiwang 发表于 2022-4-11 19:36
输入dk输出dK是因为
getchar函数每次都只能读取一个字符
putchar函数每次都只输出一个字符


太清楚了,非常清楚。{:10_275:}
页: [1]
查看完整版本: 帮我解释一下原因