-
减去32是因为小写字符与对应的大写字符的ASCII值差为32
gets(s)是输入一行字符串,遇到换行符结束
puts(s)是输出字符串s
for循环是逐个字符转换大小写。
这里有个错误是,for循环应该是i<7,因为a是字符串,最后一个字符固定式'\0',它不能减去32,否则puts(s)的时候,由于字符串缺少结束符,所以后面会输出一串乱码的。
C语言中,每个字母都有他的ASCII码值,A(65),B(66)...往后依次递增至 Z(90 ),而a的ASCII码值为97,依次递增至z(122),这样可以看出,大写字母的码值对应其小写字母码值刚好差32,所以小写转大写只要减掉32即可。博主可以百度搜一下ASCII表,很全的,除了普通字母还有其他很多常见符号,都有其ASCII码值