<ruby id="tfdtx"><mark id="tfdtx"></mark></ruby>

<address id="tfdtx"><nobr id="tfdtx"><progress id="tfdtx"></progress></nobr></address>

<noframes id="tfdtx">
<form id="tfdtx"></form>

<form id="tfdtx"></form>

<sub id="tfdtx"></sub>

直播帶貨服務

計算機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
三级在线看中文字幕完整版