
3.2.3 单个字符输入/输出函数(getchar()/putchar())
【例3.7】用getchar()函数从键盘输入一个大写字母,要求以小写字母输出。
算法分析:输入字符可以使用getchar()函数,输出字符可以使用putchar()函数。大小写字母之间的转换是通过ASCII码的换算实现的。从ASCII码表中可以看到每一个大写字母与它相应的小写字母的ASCII码值相差32。
程序代码如下:

若输入的是大写字母 A,则程序的运行结果为:

说明:由ASCII码表(参看附录A)可知,一个大写字母比其对应的小写字母ASCII码值小32,设输入字符变量c1,输出变量c2,二者关系为c2=c1+32,%c与%d对应同一个字符变量,分别对应输出其本身和它对应的ASCII码值。
注意:应该记住一些常用字符的ASCII码值,字母A~Z对应ASCII码值为65~90;a~z对应ASCII码值为97~122;空格对应ASCII码值32;数字0~9对应ASCII码值48~57。
相关知识4
1.单个字符输出函数
单个字符输出函数的一般形式如下:
putchar(表达式);
该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。例如:
putchar('#');/*输出字符#*/
2.单个字符输入函数
单个字符输入函数的一般形式如下:
getchar();
该函数从标准输入设备(一般为键盘)上输入一个可打印字符,并将该字符返回为函数的值。
注意:该函数的括号内无参数。
字符的输入无须用单撇括起来,直接输入字符即可。在执行getchar()函数时,虽然是读入一个字符,但并不是从键盘输入一个字符,该字符就被读入送给一个字符变量,而是等到输入完一行按【Enter】键后,才将该行的字符输入缓冲区,然后getchar()函数从缓冲区中取一个字符给一个字符变量。
可以用putchar(getchar());表示读入一个字符,然后将它输出到终端。
例3.7程序第6行输出字符的两个putchar()函数也可以用printf("%c\n",c1);语句代替。
课后讨论
格式输入/格式输出函数使用时应注意什么?