用getchar和putchar读/写字符

 解读 

    除了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的简单解读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值