2011-06-14 72 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++; 
}