C語言,getchar()使用時遇到的問題
阿新 • • 發佈:2022-03-17
C語言,getchar()使用時遇到的問題
【練習3-4】:統計字元:輸入1個正整數n,再輸入n個字元,統計其中英文字母、空格或回車、數字字元和其他字元的個數。
問題描述:統計回車字元時出現問題,經測試,發現問題,在輸入n並敲下回車時,把回車作為了10個需要統計的字元的第一個字元。在第13行新增getchar(),此時,讀入了輸入,但是getchar()沒有賦值給變數,讀入的換行符(回車)相當於捨棄了,相當於沒有呼叫。
回車:'\n'
空格:' '
#include <stdio.h> int main() { int n; char ch; int letter = 0; int digit = 0; int space = 0; int enter = 0; int other = 0; printf("Enter n"); scanf("%d",&n); getchar();/*讀入並捨棄換行符*/ printf("Enter %d characters:",n); for(int i=1;i<=n;i++){ ch = getchar(); if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){ letter++; }else if(ch == ' '){ space++; }else if(ch == '\n'){ enter++; }else if(ch>='0'&&ch<='9'){ digit++; }else{ other++; } } printf("letter=%d,digit=%d,space=%d,enter=%d,other=%d\n",letter,digit,space,enter,other); return 0; }