putchar()和gechar()的区别

putchar函数的基本格式为:putchar(c)。
(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为 转义字符);
(2)当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的 ASCII代码,输出该ASCII代码对应的字符;
(3)当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
例如;
#include  <stdio.h>
void main()
{
char a=‘h’,b='e',c='l',d='l',e='o';
putchar(a);
putchar(b);
putchar(c);
putchar(d);
putchar(e);
printf(\n);
}
最后输出结果就是 hello
:getchar
1、getchar()的作用

  getchar()函数的作用是从缓冲区读入一个字符的数据,第一次读取数据getchar()会等待用户键入ENTER然后开始从缓冲区进行读取数据,如果缓冲区的数据大于1个字节,剩下的数据会暂时存储在缓冲区,getchar会依次进行读取,而不需要用户再次输入ENTER来触发读取。

  getchar()的返回值是一个整型的数据,其值对应字符的ASCII码。

 

2、统计输入空格数量的小程序、getchar()的作用

#include<stdio.h>
main() {
   
    int n;
    int m;
    n = 0;
    printf("please input a String:\n");
    while((m = getchar()) !='\n'){
        if(m == ' '){
                ++n;
        }   
    }
    printf("n = %d\n",n);

  

程序实现了统计空格的简单功能,将getchar()读取的数据赋给整型变量m用于统计空格的数量。

Q1:在C语言中Char型变量实质上也是一种整型变量,如果将程序中m定义为Char型数据,功能还能不能实现?

Q2:换一种写法,会出现什么情况?

     程序进入死循环,为什么?

#include<stdio.h>
main() {
   
    int n;
    int m;
    n = 0;
    printf("please input a String:\n");
    m = getchar();
    while(m !='\n'){
        if(m == ' '){
            ++n;
        }   
    }
        printf("n = %d\n",n);       
   
}
A1:可以实现

 A2:第一种方式getchar()只在循环外读取一个字符(当读取的字符不是回车时进入循环),进入循环后不再运行getchar()读取外界字符,m的值不在变化,当然死循环;
    第二种每次循环都运行一次getchar()读取一个字符,直到输入回车结束;

  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值