验证 putchar 函数和 printf 函数的区别,以及 C 语言 中各个 类型 字段之间的差别,是不是可以看成一样的数据。(谭浩强 C 语言第三版 90 页第 4.10 题)
题目编程序,用 getchar 函数读入两个 字符 给 c1、c2,然后分别用 putchar 函数和 printf 函数输出这两个字符。思考以下问题:
(1)变量 c1、c2 应定义为字符型或 整形?或二者皆可?
(2)要求输出 c1 和 c2 值的 ASCII 码,应如何处理?用 putchar 函数还是 printf 函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:char c1,c2;与 int c1,c2;是否无条件地等价?
题目解决思路这个题目其实就是一个验证题,让我们通过实验来了解 C 语言中各个类型字段的差异,只要我们根据提示编写相应的代码来验证即可。
代码具体实现
#include <stdio.h>
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char c1,c2;
printf("请输入两个字符 c1,c2 :");
c1 = getchar();
c2 = getchar();
printf("用 putchar 语句输出结果为 :");
putchar(c1);
putchar(c2);
printf("\n");
printf("用 printf 语句输出结果为:");
printf("%c %c\n",c1,c2);
}
运行后,控制台输出如下:
注意:使用 getchar 接收键盘输入的数据时,两个 getchar 函数,需要字母连续输入。如果输入字符和空格或者换行,空格和换行被当成字符。
具体答案- c1 和 c2 可以定义为字符型或者整型,二者皆可。
- 在 printf 函数中用 %d 格式输出,即:printf("%d,%d\n",c1,c2);
- 字符变量在计算机内占一个字节,而整型变量占两个字节。因此整型变量在可输出字符的范围内( ASCII 码为 0~255 之间的字符 )是可以与字符数据互相转换的。如果整数在此范围外,不能代替。
,