How to count words in a text file in C

1 Answer

0 votes
#include <stdio.h> 
 
int main(int argc, char **argv) 
{
    int words = 0;
    FILE *fp;
    char buffer[255], *p, last = ' ';
 
    fp = fopen("d:\\file.txt","r");
    if (!fp) return 1;
 
    while (fgets(buffer, 255, fp) != NULL)
    {
            if (buffer[0] == '\0' || (buffer[0] == '\n' && buffer[1] == '\0')) continue;
            printf("%s", buffer);
            p = buffer;
            while (*p != '\0')
            {
                if (*p == ' ' && ( (last >= 'a' && last <= 'z') ||  (last >= 'A' && last <= 'Z') ))
                {
                    words++;
                }
                last = *p;
             
                p++;
            }
            if (last != ' ') words++;
            buffer[0] = '\0';
    }
 
    fclose(fp);
   
    printf("words = %i", words);
 
    return 0;
}
/*
run:

C Programming language
is popular
in the world
words = 8

*/ 


answered Apr 8, 2015 by avibootz

Related questions

1 answer 174 views
1 answer 179 views
1 answer 178 views
1 answer 211 views
1 answer 174 views
174 views asked Jun 10, 2018 by avibootz
1 answer 188 views
1 answer 186 views
...