w3resource logo


C Programming Exercises

C Exercises: Count the number of words and characters in a file

Secondary Nav

C File Handling : Exercise-7 with Solution

Write a program in C to count number of words and characters in a file.
Test Data :
Input the filename to be opened : test.txt
Expected Output :

 The content of the file test.txt are :                                                                       
test line 1                                                                                                   
test line 2                                                                                                   
test line 3                                                                                                   
test line 4                                                                                                   
 The number of words in the  file test.txt are : 12                                                           
 The number of characters in the  file test.txt are : 36

C Code:

#include <stdio.h>
#include <stdlib.h>

void main() 
{ 
    FILE *fptr; 
    char ch; 
    int wrd=1,charctr=1;
    char fname[20];
    printf("\n\n Count the number of words and characters in a file :\n");
	printf("---------------------------------------------------------\n"); 
	printf(" Input the filename to be opened : ");
	scanf("%s",fname);    

    fptr=fopen(fname,"r"); 
    if(fptr==NULL) 
     { 
         printf(" File does not exist or can not be opened."); 
      } 
    else 
        { 
          ch=fgetc(fptr); 
          printf(" The content of the file %s are : ",fname); 
          while(ch!=EOF) 
            { 
                printf("%c",ch); 
                if(ch==' '||ch=='\n')
                    { 
                        wrd++; 
                    }
                    else
                    {
                        charctr++; 
                    }
                ch=fgetc(fptr); 
            }
        printf("\n The number of words in the  file %s are : %d\n",fname,wrd-2); 
        printf(" The number of characters in the  file %s are : %d\n\n",fname,charctr-1);         
        } 
    fclose(fptr); 
}

Flowchart :

Flowchart: Count the number of words and characters in a file

C Practice online:


#include <stdio.h>
#include <stdlib.h>

void main() 
{ 
    FILE *fptr; 
    char ch; 
    int wrd=1,charctr=1;
    char fname[20];
    printf("\n\n Count the number of words and characters in a file :\n");
	printf("---------------------------------------------------------\n"); 
	printf(" Input the filename to be opened : ");
	scanf("%s",fname);    

    fptr=fopen(fname,"r"); 
    if(fptr==NULL) 
     { 
         printf(" File does not exist or can not be opened."); 
      } 
    else 
        { 
          ch=fgetc(fptr); 
          printf(" The content of the file %s are : ",fname); 
          while(ch!=EOF) 
            { 
                printf("%c",ch); 
                if(ch==' '||ch=='\n')
                    { 
                        wrd++; 
                    }
                    else
                    {
                        charctr++; 
                    }
                ch=fgetc(fptr); 
            }
        printf("\n The number of words in the  file %s are : %d\n",fname,wrd-2); 
        printf(" The number of characters in the  file %s are : %d\n\n",fname,charctr-1);         
        } 
    fclose(fptr); 
}

Improve this sample solution and post your code through Disqus.



Join our Question Answer community to learn and share your programming knowledge.