単語のカウント

K&R本 1.5.4

サンプルもあるが、自分で実装してみる。

#include <stdio.h>
#include <ctype.h>

// K&R 1.5.4
int main (void) {
    int c;
    int count = 0;
    int word = 0;
    FILE *fp;
    
    if ( (fp = fopen("test.txt","r")) == NULL ) {
        puts("file open error");
        return 1;
    }
    
    while ( (c = fgetc(fp)) != EOF ) {
        if ( isspace(c) ) {
            if ( word ) {
                word = 0;
                count++;
            }
        }
        else {
            word = 1;
        }
    }
    
    if ( word ) count++;
    
    printf("単語数 %d",count);
    return 0;
}