解读
除了scanf 和 printf,C语言中还提供了专门读写字符的函数 getchar 和 putchar ,getchar 是一次只能读入单个字符,putchar 输出这个字符。
每次调用 getchar 函数时,他会读入一个字符并返回这个字符的 int 类型,为了保存这个字符,要把它储存到一个变量中,如 ch=getchar() ,而putchar 是输出一个字符.
getchar 与 scanf 相比速度更快,主要有两个原因:
1> getchar 只读入字符,比较简单,而 scanf 可以输入各种类型,速度比较慢;
2> 为了额外的速度提升,一般都是讲getchar 函数和 putchar 作为宏来实现的;
和 scanf 一样,getchar 在读取字符时也不会跳过空白字符。
getchar 的惯用法
while(getchar()!='\n')
实际上我们直接把getchar 和\n 比较,如果不等,那么执行循环体的代码,可以很好的计算输入字符的长度。
getchar的实例
1> 计算输入字符串的长度
#include <stdio.h>
int main()
{
int len = 0;
printf("enter a message :");
while (getchar() != '\n')
len++;
printf("your message was %d character (s) long .\n", len);
return 0;
}
在 getchar 内输入一段话,计算出这段话的长度,
2>大小写转化
如果用 scanf 输入,最后会多输出一个*号,
因为在换行时回车键相当于输入一个\n 符号, \n 就会转化成一个*号,要在printf后面输入一个getchar 把\n读取走然后不输出,就可以解决这个问题。
如下:
以上就是关于getchar和putchar的简单解读。