The Program in C to count the number of characters, spaces, tab, new lines in a file is given below:
#include <stdio.h>
int main() {
FILE *fp;
int ch, characters = 0, spaces = 0, tabs = 0, newlines = 0;
char fileName[100];
printf("Enter the file name: ");
scanf("%s", fileName);
fp = fopen(fileName, "r");
if (fp == NULL) {
printf("Could not open file %s", fileName);
return 1;
}
while ((ch = fgetc(fp)) != EOF) {
characters++;
if (ch == ' ') {
spaces++;
} else if (ch == '\t') {
tabs++;
} else if (ch == '\n') {
newlines++;
}
}
printf("Characters: %d\n", characters);
printf("Spaces: %d\n", spaces);
printf("Tabs: %d\n", tabs);
printf("Newlines: %d\n", newlines);
fclose(fp);
return 0;
}
Output:
Enter the file name: sample.txt
Characters: 100
Spaces: 20
Tabs: 5
Newlines: 2
In this example, the user enters the file name “sample.txt”, the program opens the file and reads it character by character, it counts the total number of characters as 100, spaces as 20, tabs as 5 and newlines as 2, and prints them out.
You can try different file names to see if it works fine.
Please note that for this program to work, the file “sample.txt” should exist in the same directory where the program is executed.
Pro-Tips💡
This program prompts the user to enter the name of a file, opens the file in “read” mode, and uses a while loop to read each character from the file one at a time using the fgetc() function.
It checks the value of each character against the special characters ‘ ‘, ‘\t’ and ‘\n’ and increments the appropriate counter variable.
Once the end of file (EOF) is reached, the program prints the number of characters, spaces, tabs, and newlines in the file.
It uses fopen() to open the file and returns a file pointer, if the file doesn’t exist it prints an error message.
At the end it uses fclose() to close the file.
Please note that the program uses scanf(“%s”,…) to read the input file name, and it does not check for the validity of the input, you may want to add some validation on the input to make sure that the input is a valid file name.
Learn C-Sharp ↗
C-sharp covers every topic to learn about C-Sharp thoroughly.
Learn C Programming ↗
C-Programming covers every topic to learn about C-Sharp thoroughly.
Learn C++ Programming↗
C++ covers every topic to learn about C-Sharp thoroughly.