2011-06-14 70 views
1

我有一個關於使用fgetc來計算指定文件中的字符的問題。 如何分別計算字符類型時如何使用它?例如,我只想計算僅包含小寫字符的數量,或者空格數量或標點符號等?有人可以舉個簡單的例子嗎?謝謝使用fgetc讀取文件

我試圖做這個程序,希望計算字符的總數,你怎麼擠入雖然單獨的字符類型的數量?我不能完全肯定,如果這個計劃是正確的

#include <stdio.h> 
int main (void) 
{ 
    //Local declarations 
    int a; 
    int count = 0; 
    FILE* fp; 

    //Statements 
    if (!(fp = fopen("piFile.c", "r"))) 
    { 
    printf("Error opening file.\n"); 
    return (1); 
}//if open error 

     while ((a = fgetc (fp)) != EOF) 
     { 
     if (a != '\n') 
     count++; 
     printf("Number of characters: %d \n", count); 

     else 
     printf("There are no characters to count.\n"); 
     } 
     fclose(fp); 
     return 0; 
} 
+0

您的if/else是語法錯誤,因爲'if'部分不在花括號中。請提供可編譯的C文件,最好使用縮進來反映代碼結構。 – Jens 2012-05-29 14:52:28

回答

0

這些功能讀了起來:

int isalnum(int c); 
    int isalpha(int c); 
    int isascii(int c); 
    int isblank(int c); 
    int iscntrl(int c); 
    int isdigit(int c); 
    int isgraph(int c); 
    int islower(int c); 
    int isprint(int c); 
    int ispunct(int c); 
    int isspace(int c); 
    int isupper(int c); 
    int isxdigit(int c); 

,你會馬上看到如何做到這一點。

0

在你的時候,你可以使用if語句來檢查每個字符。

if(isalnum(a){ 
    counta++; 
} 
else if(isalpha(a)){ 
    countb++; 
} 
else if(isascii(a)){ 
    countc++; 
}