直播带货服务

计算机getc0与putc0应用案例

案例描述】

编程实现:输入若干个ASCII码字符(按回车键结束),统计数字、英文字母的个数。

输入:Ab,45Eey 8#

输出:数字3个、英文字母5个

计算机getc0与putc0应用案例

案例分析】

1、数字的ASCII码值为[48,57]上的整数。

2、英文字母的ASCII码值为[65,90]和[97,122]上的整数。

3、getc和scanf函数均从输入缓冲区中读取数据。当输入缓冲区为空时,函数会暂停,等待输入(所有输入均存入输入缓冲区),当读到回车符时,输入结束,函数从输入缓冲区读取数据程序继续执行。

4、尽管getc(stdin)只能从输入缓冲区读取一个字符,但输入时用户可以输入多个字符,直到按回车符,getc(stdin)才开始从输入缓冲区读取字符。例如:执行以下代码的流程是:

main()

{ int n=0;

  while(getc(stdin)!='\n')n++;

  printf("%d",n);}


(1)执行语句int n=0;

(2)执行getc函数,从输入缓冲区读取一个字符。这时输入缓冲区为空,程序暂停,等待输入。

(3)如果输入"ab"后回车,这时输入缓冲区存储的是"ab\n"

(4)getc函数从缓冲区读取字符"a"

(5)输入缓冲区自动删除读取的字符,这时输入缓冲区存储的是"b\n"

(6)执行"getc(stdin)!='\n'。条件成立,执行"n++"

(7)执行getc函数,直接从输入缓冲区读取字符"b"(不再等待输入)

(8)输入缓冲区自动删除读取的字符,这时输入缓冲区存储的是"\n"

(9)执行"getc(stdin)!='\n'。条件成立,执行"n++"

(10)执行getc函数,直接从输入缓冲区读取字符"\n"(不再等待输入)

(11)输入缓冲区自动删除读取的字符,这时输入缓冲区为空

(12)执行"getc(stdin)!='\n'。条件不成立,循环结束

(13)执行"printf("%d",n);",输出n的值,程序结束

计算机getc0与putc0应用案例

【参考代码

#include<stdio.h>

main() 

{ int c,n=0,s=0;

  while((c=getc(stdin))!='\n')

       if(c>=48&&c<=57)n++;

   else if((c>=65&&c<=90)||(c>=97&&c<=122))s++;

  printf("数字%d个,英文字母%d个",n,s);

}


© Copyright 六六互联.Some Rights Reserved.www.ic.vip