1. 程式人生 > 其它 >C語言,getchar()使用時遇到的問題

C語言,getchar()使用時遇到的問題

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;
}